You don't need provisioning profiles for developing on iphone simulator.
If you also want to develop on your device, first register the device when creating the provisioning profile, then upload the provisioning profile to your device.
Apple's documentation is pretty clear and easy to follow on this issue.
Good luck.
Edit: 1- You need provisioning for developing on the device, thats why it gives you a provisioning error when you try running with -iphone device xxx.
2-The blank white screen on the simulator has nothing to do with provisioning, you succeded to run your code on the simulator, but either your code does nothing or you did not link your uiwindow to your views
3-Base sdk defines that dropdown menu on the topleft. If you select iphone 3.1.2 as base sdk in project settings, you can only see simulator/device 3.1.2 on the dropdown menu, if you select 2.0 as your base sdk you will see device/simulator 2.0,2.1,2.2.1,3.0,3.1.2,... on the dropdown menu. Since you selected 3.1.2 as base sdk you don't see earlier versions on the dropdown menu.