Wednesday, November 12, 2008

How to NOT code sign an iPhone App

I spent a couple of hours looking for away to self-sign an iPhone app to no avail. None of the official documentation I've read explicitly says that you need to have a paid ($99) account with Apple to self-sign, yet it's not working. I'm suspecting it is because I'm missing an official WWDC (?) certificate as well... and possibly because I really, really need to cough up the $99.

I followed the instruction in the Code Signing Guide (http://developer.apple.com/documentation/Security/Conceptual/CodeSigningGuide/Introduction/chapter_1_section_1.html) and kept getting the same errors about not being able to find the right certificate. In fact, I had changed from using my first + last name and just used my first, yet the code kept compiling and looking for the first + last cert. I had to finally delete the entire code base (deleting just the Info.plist wasn't enough) and replace it with a new copy (btw, I was trying the BubbleLevel demo program out). I tried a variety of permutations of my name, including the "iPhone Developer:" prefix which I kept seeing in documentation. Nothing. I was very concerned that maybe XCode didn't know which keystore the cert was in (I created one called Software to keep it distinct from the other certs).

Finally, after a lot of looking around, I found a site for a fellow (which I can't re-find now, unfortunately) who had screenshots of his efforts and his Apple account. I think I see how it works now and indeed it appears you need the $99 account to do it. From what I gather, the account allows for "members" who can then be synced to the phone. That connection to the device profile is what then allows XCode to sign the code and sync it with the device. I think.

The overall experience was very frustrating. I'm waiting for offical approval from Apple on my business' account so I can try it then (how long does it take to process the account?). In the meantime, I played with the simulator instead, which is actually very nice compared to what I have to work with in BREW. It's even a step up from the J2ME simulator. Ah, the benefits of having a single hardware platform.

No comments: