98
votes

I have all my code signing entitlements set correctly. Running the app on my phone is fine, but launching it in instruments gives me an error message:

Error Starting Recording
At least one target failed to launch; aborting run

And then:

Target failed to run. Permisson to debug [app name] was denied. The app must be signed with a development identity (i.e. iOS Developer)

Any ideas how I could stop this from happening? Doesn't happen on my iPad.

9

9 Answers

218
votes

Edit the scheme for your target and under "Profile [App Name]" set the Build Configuration to Debug (it's usually Release by default).

34
votes

It is saying that you need to sign the app with a developer certificate (not a distribution certificate).

In Xcode 5 just change the "Provisioning Profile" field for your "Release" build in the Build Settings to your developer certificate instead of your distribution certificate. For the duration of the testing anyway. Xcode doesn't allow you to build with a distribution certificate.

Make sure that the project build settings do not override the target build settings or make the change in your project build settings.

Don't forget to set the profile back after you're done with the testing.

I do not recommend harrywynn's method, since it is better to profile the release build because then you are taking into account the compiler optimizations, and having the exact experience your users will.

9
votes

To add to the previous answers.

  • Instruments is complaining about the signing identity.
  • I believe it is preferable to profile in release mode, for the same reasons given by Zolten. (take into account the compiler optimizations, and have the exact experience your users will, etc...)
  • To change your code signing identity for Xcode 6:
    • Click on your Project, Select the Target you are Profiling.
    • Build Settings -> Code Signing -> Code Signing Identity -> Release
    • Select your iOS developer profile.
  • Provisioning Profile: Let Xcode pick the correct Provisioning Profile for you, e.g: switch to Automatic
  • When you are done with the Profile, switch back to your normal settings.

Here's a picture for those who are very visual ;)

enter image description here

1
votes

I was getting the same issue : [INST STDERR] Instruments Trace Error : Target failed to run: Permission to debug was denied. The app must be signed with a development identity (e.g. iOS Developer).

Solution: 1. I archived the the app with Debug Developer Profile in xcode for device. 2. The go to Window -> Organiser -> to see all the list of archieves 3. Now select the archive to wanted to export and open it in finder 4. Right click and show package contents 5. Go to the Products/Applications folder You will see the .app file.

Use this instead of the ipa.

Make sure that the device has been already added to the developer portal and all the certs are installed on it for the above steps to work.

Once this is in place. Also, make sure you get the ios-webkit-debug-proxy from the link below:

https://github.com/appium/appium/blob/master/docs/en/advanced-concepts/ios-webkit-debug-proxy.md

Also, enable developer tools on on the device setting. Also, make sure safari webinspector (safari -> Develop) -> Inspector is on Hope it helps:-)

NOTE: When you want appium to install the app on the device for you, don't provide Bundle ID.

0
votes

I achieved to solve this issue on my machine by doing this :

  • Generate a new Developer Provisioning Profile with your device in the list or at least make sure that your machine is in the list of the profile's device.
  • In Project settings -> Code Signing -> Provisioning Profile -> Debug : Set the newly created profile.
  • In Targets settings -> Code Signing -> Provisioning Profile -> Debug AND Release : Set the newly created profile.

Hope that helps.

0
votes

I realised what "At least one target failed to launch" means. It appears that both the development and release schemes (if you have a debug scheme and a release scheme) must have a development identity.

I had the debug scheme selected when running the profiler and the message at the top of XCode said "Running debug". However, it seems that this is not sufficient.

I changed my release scheme code-signing identity to be the same as the debug scheme (and also the provisioning profile), and the problem went away.

0
votes

it worke.. when i changed my profile schema to debug mode and also made sure, build configs has developer certificate in it. Thanks

0
votes

None of the other solutions here fixed my problem, but I did determine that it was only a problem for me on the simulator. The device works fine. Perhaps there's an issue with the simulator.

0
votes

I encountered this problem with Xcode 9.1 for both simulators and devices, and my running scheme was already set as profiling with "Debug". Finally found this Apple forum discussion very helpful and got the problem resolved. In short, the solution that worked for me is ... Restart the Mac.