Archive for the ‘iPhone’ Category
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
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
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.