46
votes

OK, I've just got myself a shiny new MacBook Pro, and having been developing my iPhone app on another MacBook, I wanted to migrate my development to my new computer.

I've got to the stage where I can build the app and run it on the simulator no problem, but when it comes to running the app on my iPhone, I keep getting "The application could not be verified". I have installed a new developer certificate, and installed the provisioning profiles (all generated new), but I'm at a loss as to why I should still be getting the error.

Anyone have any ideas as to where I'm going wrong?

EDIT

I've recreated the certificate and profisioning profile, etc... The Build succeeds, and the status at the bottom gets all the way to 'Installing on Device', then two modal dialogs are displayed with the same "Application could not be verified" error message.

Is there any output I can get to that will give me a precise error?

EDIT

OK, I've got the appropriate log from Organizer showing the problem. It looks like I haven't set up the Entitlements.plist, but in xcode, I have. (I've added an Entitlements.plist fole, then unchecked get-task-allow, then added Entitlements.plist to the project settings under Code Signing Entitlements). The log is:

Tue Jun 16 07:35:42 unknown mobile_installation_proxy[1162] <Error>: install_embedded_profile: Skipping the installation of the embedded profile
Tue Jun 16 07:35:42 unknown securityd[1158] <Error>: mobile_installat[1162] SecItemCopyMatching: missing entitlement
Tue Jun 16 07:35:42 unknown securityd[1158] <Error>: mobile_installat[1162] SecItemCopyMatching: missing entitlement
Tue Jun 16 07:35:42 unknown securityd[1158] <Error>: mobile_installat[1162] SecItemCopyMatching: missing entitlement
Tue Jun 16 07:35:42 unknown securityd[1158] <Error>: mobile_installat[1162] SecItemCopyMatching: missing entitlement
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: entitlement 'get-task-allow' has value not permitted by a provisioning profile
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: verify_executable: Could not validate signature: e8008016
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: preflight_application_install: Could not verify /var/tmp/install_staging.1WIVsB/BouldrData.app/BouldrData
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: install_application: Could not preflight application install
Tue Jun 16 07:35:43 unknown mobile_installation_proxy[1162] <Error>: handle_install: Installation failed
Tue Jun 16 07:51:53 unknown afcd[1181] <Error>: user mobile has uid 501
Tue Jun 16 07:51:53 unknown afcd[1181] <Error>: mode is 0x41e8

Can anyone shed any light on why this isn't working as expected?

EDIT

Got the build working, but I've not accepted an answer yet, as I have no idea as to what's going on. Anyone with any idea as to what is going on?

11

11 Answers

93
votes

My problem was actually that I already installed the app via a testflight on my phone, after removing the app it worked!

32
votes

I got it resolved by deleting already installed build from phone and then reinstall the build.

16
votes

From this thread on ADC:

get-task-allow, when signed into an application, allows other processes (like the debugger) to attach to your app. Distribution profiles require that this value be turned off, while development profiles require this value to be turned on (otherwise Xcode would never be able to launch and attach to your app).

6
votes

Check if your iPhone properly provisioned. You may connect iPhone and launch Organizer from XCode (Main Menu -> Window -> Organizer) and then check PROVISIONING PROFILES information.

After that you need to match Bundle Identifier (Project -> Info.plist) and your App ID. You may read this Apple Note Mismatch between App ID and Bundle Identifier

I had similar message boxes (two in a row) when my Bundle Identifier was incorrect.

3
votes

Did you remember to expand Targets on the left of the project window, then right click on your app name > get info, then go to the Build tab and under Code Signing, under Code Signing Identity, change the value of Any iPhone OS Device to what applies in your case? Also in the properties tab you should have your identifier set so that it matches the identifier you chose.

Don't know if that helps, that's the step I found missing in your description though.

2
votes

I know you've already checked some of this, but just so this answer is complete:

  • Check that the new provisioning profile and certificate is named at the target level for each build setting you want to install on the device.
  • Code Signing Entitlements must also be defined at the target level, not the project.
  • Double check your build log, looking for a line that includes CodeSign. Verify it is there and using the certificate you expect.
  • If all else fails, remove the code signing identity from your target, clean all targets, delete any build directories from your project, quit and restart Xcode, replace the code signing identity, and try your build again.
1
votes

In addition to verifying the code signing, be sure to go to the Build menu and run "Clean all targets". Xcode gets mixed up from time to time.

1
votes

Problem solved (at least for me!)

Export Developer profile on machine that works, then import on machine with the problem. Done through Preferences/Accounts, Gear icon on the bottom.

1
votes

Going into Window > Devices and looking at the Installed Apps, I was able to find out that my app was already installed. Select the app and hit '-' to remove it from the device. Try rebuilding your app with that device as the target.

Worked for me, even though from the phone I couldn't find where the app was installed!

1
votes

"The application could not be verified" , in your device there could be already an app installed with the same bundle identifier.

I got this issue because my had app from App store& I was testing its update Version from Xcode.& with same identifier as in my live app .

So Simple solution Just delete the App & install again.. ....

0
votes

One important but easy to overlook item: make sure all your provisioning keys & certs are on the login keychain. I ran into this when I tried to create a new "development" keychain and all my profiles became "invalid".