I’ve been meaning to update my first iPhone app FIB-U-LATOR now for a while, and have been consistently distracted by many a thing; not the least of which is developing a new app which. Since I originally posted FIB-U-LATOR to the App Store, a lot of things have changed on my end as far as equipment, and that has made things quite tricky. This is that story.
Developing iPhone Apps is a tricky thing. Getting the Provisioning and Distribution certificates and code signing can be a Lovecraftian experience, as evidenced by a few simple Google searches on the subject. The first snag I ran into this time was not having a valid developer certificate, and the certificate I had was not registering properly in my keychain. I followed the directions on the dev portal, but still no dice. The catch is your certificate must either be generating for that specific machine, or copied out of Keychain Access, and imported into a new computer. That was my issue. I had rebuilt my laptop, and moved everything to my new iMac and had NOT backed up the key from my laptop.
If you move your development to a new machine you need to use the same key. Export and save your keys from Keychain Access when you are issued them to save yourself a lot of hassle. Read more of the Apple Developer Portal about managing your digital identities.
Crap! The fix was pretty simple though, I revoked my certificate and requested a new one, and poof! I could get my apps back onto my devices. I also needed a whole new set of provisioning profiles too, once that was done I was back in testing business.
So after that hurtle, I was back into the development groove and needed to hit the next step of building and submitting the new version through Connect. I kept running into the Project Settings recognizing the Distribution Profile, but the Target Info would not find a matching certificate, and I received code signing errors. This part is one of the bits a lot of people miss, there are two settings windows where you have to set the Code Signing Identity. My issue with FIB-U-LATOR turned out to be something I wouldn’t have guessed, and something I didn’t know about until today. When you update your App, you have to use the same App ID you used when you first uploaded it.
Be sure to keep your AppIDs in the developer portal so you can update your apps. I don’t know of any way you can re-create an App ID if it’s deleted. It seems to be a common conception to use a wild card App ID for distribution, rather than a unique one for every app. The only caveat here is in-app purchase will not work with wild card IDs.
Good thing I didn’t delete it while I was screwing around trying to get my keys and certificates working. Once I had that down, I opened the Organizer Window and removed all of the other distribution profiles, and loaded up the correct one. Cleaned all targets, restarted Xcode and made a new build. This time it uploaded without error.
I’m still working on getting my newest app ready for AdHoc distribution so I can send out for some friends to test for me, I ran a build off last night but I’m suspect it isn’t going to work.
I’m convinced the reason that Apple has made this so unbelievably convoluted is so that in the end, when you finally get it right, there is this huge rush of euphoric relief. In essence, they’re just trying to spread happiness and joy…..