Well, I finally took the plunge and joined the iPhone developer program, even though I've only managed some "Hello, World" style apps on the simulator. While joining the iPhone developer program is pretty straight forward (assuming you have a membership in the ADC and a valid credit card), installing the certificates so you can actually transfer my app to my iPhone has become quite the adventure. You have to look up a 40 key ID that uniquely identifies your iPhone, use KeyChain services, download provision files, but then I got stuck with the following error:
"The Developer Disk Image could not be mounted.
Xcode could not find an appropriate Developer Disk Image to mount on Michael Golden’s iPhone. Please contact Apple for the 2.2.1 (5H11) device support package."
The learn2code.blogspot.com site had the following nugget:
launch the latest iPhone OS 2.2.1 SDK,
double-click to open the Packages folder,
double-click on DeveloperDiskImage.pkg,
follow the installer's instructions and don't forget to specify the location (usually /Developers).
Then it turned out I wasn't even running the latest 2.2.1 SDK! I couldn't believe it, but sure enough when I had downloaded the 2.2.1 SDK .dmg, I managed to double-click the 2.2 SDK .dmg from last time. (I immediately went through my desktop and started trashing all my old downloads) I don't know how much of that was the problem, but after deleting the 2.2 SDK and installing the 2.2.1 SDK (you can verify which iPhone SDK you have by selecting your target. If you don't see Device 2.2.1 then you don't have the latest version), plus finishing all the steps on the ADC site for setting up your environment (more keychain stuff) I finally got the green dot next to my iPhone in the Window->Organizer, meaning I was ready to test my program out on my device! I still had to restart Xcode one more time since I was still getting a error when I went to Build and Go, but it's finally on my iPhone! I'll try and get some coherent directions up here for you fellow aspiring iPhone programmers. The best advice that I can give is to make sure you have the latest SDK and updates on your iPhone before you start, and give yourself some time to go through the whole process.