Archive for category Developer
Apple Provisioning Woes
I’m about to submit an update to Apple for Fishmaster and have been facing some difficulty with the codesign-ing process. I followed their step-by-step process on the Developer Connection part of the website. However, when it came time to upload the binary I kept getting an error message saying the that binary wasn’t properly signed.
They have steps to verify if you have a successful build. I initially glossed over this as I didn’t remember verifying my build the first time through. Plus, things went smoothly the first time. Anyway, this turned out to be the key this time around.
I followed the steps as far as modifying the project and target preferences to codesigning using the iPhone Distribution. I would submit it to Apple and it would tell me that my binary has codesigning issues. After fiddling with every possible combination, I was ready to give up.
Here are two tips that will help you debug your situation faster.
1) The Build Log is your friend. After building, you can find the Build Results under the Build Menu. The last steps in any build should be the command to GenerateDSYMFile and Touch. I kept seeing this. In a successfully built binary with codesigning you should also see steps for ProcessingProductPackaging and CodeSign show in the image below. In unsuccessful builds, I did NOT see these two commands being run.

2) CodeSign command line. There is a command line command (that sounds odd
) to check to see if a compiled app is codesigned. The simplest form is to run “codesign -vvvv MyApp.app” in the directory where MyApp.app is built. This will be in your build directory under Distribution-iphoneOS. If you get an error that looks like
“MyApp.app: object file format invalid or unsuitable”
then you’re in the same hold I was.
But there was one part of the build process that was different when I finally fixed the problem. When it built successfully I was prompted by keychain that it was using my iPhone provisioning profile to sign the binary. Once I saw this, the binary was properly signed.
What was my problem? I had XCode using the iPhone Simulator 3.0 SDK when building.. There was no particular reason except that that’s what I was last using when I was developing. For no reason whatsoever, I changed this to iPhone Device 3.0. Lo and behold it worked.
I don’t recall seeing anything like this about their docs but, then again, I’m usually skimming anyway. When you use the iPhone Device 3.0 SDK, the build will be put in the Distribution-iphoneos directory. As opposed to building with the iPhone Simulator 3.0 SDK which puts builds in the Distribution-iphonesimulator directory. The screenshots from Apple’s step-by-step instructions do show the builds coming from the Distribution-iphoneos directory.
Going Live with your First App
When I was putting the finishing touches on my app, I was excited to get it out. Little did I know how much patience it would take and so I decided to write a post on it for all the other developers who find themselves in the same position of releasing their first app.
Step 1: Buy your developer’s license. You’ve probably already done this by now.
Step 2: Submit your app to Apple. If you google how long this takes, you’ll see varying degrees of length. It seems that Apple has really tightened their process. It’s now June of 2009 and it took about 2-3 business days for them to approve of my app. Just to note, my app was a pretty straightforward game and there are no controversial elements to it. You will receive an email once it is approved. The email may say that it’s ‘Ready for Sale’ but that’s now exactly right. See the next step.
Step 3: Fill out your paid contract. I was ready to release my app but when I went to iTunesConnect the status showed up as ‘Pending Contract.’ If you go back to the iTunesConnect main menu, you’ll see an area titled ‘Contracts, Taxes and Banking Information.’ Of particular importance is the contract to sell paid apps. You must fill out this contract and wait for Apple to approve it. Despite the long wait I read about online, mine only took about 1-2 business days. I did NOT get an email about a status change and just checked this manually. My contract for free apps was already in an approved state.
Step 4: Really ready for sales. At this point, your app status should show up as ‘Ready for Sale’. I was really excited but I’m unable to find my app in the store by searching through iTunes or searching through the App Store on the phone. I did notice a little arrow next to the title of the app on the iTunesConnect application management page which will bring up the app in iTunes. I’m guessing the reason this is is that Apple has to update all their search indexes so that new apps are added to them.
Final word: So I waited about 2-3 business days (over the weekend) and my app still wasn’t showing up when I searched for it in iTunes or through the App Store on the iPhone. After reading several Google links, a suggestion someone made was to update the release date of your app to the current day once you received the Ready for Sale email. Lo and behold, several hours later it started showing up under the searches! I’m not sure if that’s what did it or if it was coincidence but I was reading that most people would find their app in the App Store several hours after they received the Ready for Sale email.
