If you’re in the iPhone Developer Program, you’ll be able to run you code in a phisical device, with the following process:
- –
- Create a Certificate Signing Request (CSR) and submit to the developer portal
- Download and install the code singing certificate (Development/Distribution certificate) to your Keychain
- Download and install the WWDR certificate
- Create/Download a Provisioning profile listing the devices you intend to run the program on
- Install the provisioning profile to your development machine by dropping it into iTunes
- Set the Certificate/Provision profile in your XCode project
Throubleshooting/things to verify:
First re-read iPhone Developer Portal Program Guide PDF to make sure you’ve followed every step correctly.
The two basic types of issues you can have:
- The app is not signed
- The app is signed, but you cannot run/load it into the device
Verifying if your app is signed
You can check if you app is signed by verifying the followin 2 things:
- There was a CodeSign step during the build
- The built package contains a
CodeResource
andembedded.mobileprovision
If it’s not signed double check the followings:
- XCode project is set up correctly
Code Sigining Identity
is:iPhone Development: yourname
oriPhone Distribution: yourname
and the Code signing provisioning profile is set to a porfile you’ve downloaded. It shouldn’t beDefault provisioning profile for code signing identity
- If you set these things at project level make sure they aren’t overriden in target level
- Voodoo: Quit XCode, clean, rebuild
If you can’t even select the provisioning profile in XCode check the followings:
- Is the active target in XCode the same as the settings you’re editing? Here is the thing: it seems that the provision profile popup contains profiles matching the active target’s certificate (and no the one you’re editing). So make sure that you select the current configuration in Project/Set Active Build Configuration
- Do you have the WWDR certificate installed? Check
Apple Wordwide Developer Relations Certification
in Keychain - Do you have my Distribution Certificate in keychain? Check for
'iPhone Developer: name'
and/or'iPhone Distribution: name'
in Keychain. There should be a gray trinangle to the left of if, and on open it should show your private key. - Do you have the provisioning profile installed in
~/Library/MobileDevice/Provisioning Profiles/
. Drag and drop the profile to iTunes to fix this.
The app is signed, but you cannot run/load it into the device
First get iPhone Configuration Utility, it’s a great app to get more information, you can check your console log, install single application and check installed provisioning profiles.
- Do you have the provisioning profile installed to your iPhone? Use
iPhone Configuration Utility
to verify
There can be also issues with App-ID that will prevent from application to run.
- In my experiecnce you should just use
*
as app id. - If you have a
entitlement 'application-identifier' has value not permitted by provisioning profile
in your iPhone console log, then try using a wildcard (*
) App ID
Ad Hoc profiles:
I just couldn’t get Ad Hoc profiles to work. I always have this error in my iPhone console log:
entitlement 'get-task-allow' has value not permitted by provisioning profile
I’ve tried following every step of the iPhone Developer Portal Program Guide PDF, and i still get this.
In iTunes i either get a 0xE8000001
or 0xE8000013
when trying to install an application with an AdHoc provisioning profile.
Update: Apple has just updated the instructions in iPhone Developer Portal Program Guide PDF. They now tell to add ‘Entitlements.plist’ with ‘get-task-allow’ set to false to the Entitlements.
You should also verify your provision profile with a text editor. The plist embedded should contain these lines:
<key>Entitlements</key>
<false>
You should also remove old provision profiles without the iPhone (Use iPhone Configuration Utility). As having a bad provisioning profile will prevent your app from installing.