Technology, mountain biking, politics & music.

Archive for the ‘failure’ tag

The dreaded 0xE800003A

with one comment

We’ve recently been seeing a lot of errors in new projects when trying to deploy the application onto a real iPhone (i.e. not the simulator) using Xcode, but not hitting the same problems with ad hoc releases. This is the dreaded ApplicationVerificationFailed 0xE800003A error. Run in horror! Here is a good explanation of the error and one potential fix.

There’s plenty of advice out there for how to fix this, ranging from restarting Xcode to simply ensuring your app ID is the same in your Info.plist bundle identifier as it is in your profile (on the dev. portal). I’d been through all these with no luck though (as had another of our developers).

Even though fairly different, they all boil down to the one thing, follow a meticulous set of steps and ensure everything is neat & consistent. So what do you do if this still doesn’t work? This is what worked for us, it may or may not work for you, good luck.

Here’s the problem in a nutshell: development provisioning profiles are generated with a get-task-allow of true (open one in a text editor and check) and if you are including an entitlements file in your Debug & Release configurations (remember consistency) you will have set it to false as per the Apple documentation.

Here’s the solution: remove the entitlements file from your Debug & Release configurations (it’s the “Code Signing Entitlements” section in your project or target properties).

That’s it. All good. Ship it!

So why were ad hoc builds working for us? The setting for get-task-allow in the entitlements file must match what is in the provisioning profile. This was true for our ad hoc profiles, both the entitlements and the profile were set to false. If you include the entitlements in a Debug configuration and change get-task-allow to true, you should now be able to deploy on device using a development profile (remember these have get-task-allow set to true). Of course you don’t want to do this, as you need it set to false for ad hoc and App Store builds. So the easiest way to resolve it is to remove the entitlements from Debug & Release configurations.

Written by Tom Adams

May 22nd, 2009 at 11:09 am