Related
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.
Edit the scheme for your target and under "Profile [App Name]" set the Build Configuration to Debug (it's usually Release by default).
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.
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 ;)
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.
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.
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.
it worke.. when i changed my profile schema to debug mode and also made sure, build configs has developer certificate in it. Thanks
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.
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.
I am trying to put my build up for testing on TestFlightApp. In my previous version of xcode, I was able to view the "share" option after archiving, which I used to create the ipa file. The ipa file was uploaded to testflight and everything worked as expected. With the upgrade to xcode 4.3.1, I don't see the share option. I tried using the distribute option and created the ipa. Then when I tried uploading the ipa to testflight, got the following error.
'Invalid IPA: values for key com.apple.developer.ubiquity-kvstore-identifier are mismatched between profile and binary'
can someone help.
I know an answer has been provided to this question, but looking at the comments (and my own request having sending me here also) it seems that help might be needed to those like #Yuchen or #Kent in the comments that only have two options in the distribute panel ("Submit to the iOS App Store" and "Export as Xcode Archive"), and can't see the "Save for Enterprise or Ad-Hoc Deployment" option.
If your target includes other targets (e.g. libraries), you should put the "Skip Install" flag to YES in the "sub" target Build settings. This will allow yourself to distribute your archive as an IPA file.
More information can be found on this StackOverflow answer.
Hope this will help,
Thibault
Here is how I fixed it.
com.apple.developer.ubiquity-kvstore-identifier is specifically for iCloud. See iOS Developer Library. So I used the following procedure:
Verify App ID in iOS provisioning Portal iCloud status (mine is enabled)
Removed old entitlements from project (I had manually created them)
Use the Target editor to enable the entitlements (at the bottom of the Target editor window), matching the App ID iCloud setting, added Container and Keychain Access.
Clean and Archive
Select the archive and click on Distribute...
Save for Enterprise or Ad-Hoc Deployment
Select your development code signing identity
Save the bundle to disk - did not check for enterprise
Drag ipa to TestFlightApp.com builds
At this point, TestFlight accepted the bundle and my testers were able to download!
In Xcode 4.3.1 there is no "share" option in Archives tab of Organizer to create IPA.
Hence to create IPA just click the available "Distribute" option and select Method - "Save for Enterprise or Ad-Hoc Deployment" then we have an option to save the build in IPA format.
See the Attached Screen Shots,
thanks,
Naveen Shan
You can use
Distribute... and Save for Enterprise or Ad-Hoc Deployment
It is same as the old Share... menu.
I'm trying to do ad hoc distribution. When I use XCode, the application installs fine on my phone.
In preparation for ad hoc distribution, I created the default entitlements file, unchecked the get-task-allow box, added the entitlements file name to the code signing entitlements line, and tried to install on my phone.
If I have the file in the entitlements in build settings, I get the (dreaded) error
The entitlements specified in your application's Code Signing Entitlements file do not match those specified in your provisioning profile.
(0xE8008016).
This ONLY happens if I have the entitlements file listed in the code signing section.
I created a brand new application to test this, to see what could have gone wrong and this happens with a completely new test application (so it doesn't seem like clean builds, opening and closing XCode, etc will help).
What am I missing? I've read all of the other times this has occurred and nothing seems to apply.
You need to follow these steps
Have you changed the bundle identifier in your project's info.plist???
Please make sure that this also matches with your provisioning profile's identifier.
go to your projects info. select the configuration you want your build to be deployed then check in build settings that you have added the dist.plist file and the provisioning profile is the same thta you need to run with.
If you are making the build for distribution then set the get-task-allow mark as unchecked
Hope this helps.
I've made it! The reason is you got wrong Certificates! If you're using development Certificates, you can't use the distribution Certificates.
Do the following steps:
Remove the provisiong file from the Xcode -> Organizer
Download again from your developer account. Make sure that you have downloaded profile from distribution tab.
Drag and drop that profile to Xcode
Change the bundle identifier of your plist that match with your provisioning profile App ID.
Go to application setting target and active target and choose your profit from there.
Now rebuild and run the app.
It's also worth noting that this problem may be rooted in trying to install properly authored programs on Jailbroken devices. At least in my case, all my development units and I kept getting this error. By adding the get-task-allow BOOL type to a Entitlements.plist file, I still got the error but the files were installed on the devices (live debugging doesn't work though).
Have you checked that the Code Signing Identity values under Project > Build Settings and Targets > Build Settings are correct?
I found I had to add the new device I was testing on to my Provisioning Profile, on the IOS Provisioning Profile Site.
I had not agreed to the new updated licensed agreement from apple.
Briefly :
Please log in to your developer's account -> profile's -> review -> read the agreement or get your lawyer read it for you -> agree (at your own will) -> and again click profile's to check the status of your profile.
In my scenario the valid code signing entity was not showing up. When i followed the above procedure it was visible and i was able to run the app on the device and/or create the iPA file without much difficulty.
For what its worth, I had this issue with one app but not another. Seems the "Provisioning Profile" in Target->BuildSettings->Code Signing had to be set to "Automatic". If you selected one of the ones in the list it failed with this error.
me too got this type of error, i resolved this by deleting current Entitlement.plist and adding new Entitlement.plist.
Because the project i was trying to run was build on 3.2 sdk and current i am using 4.2.
That was the only reason i was getting error
It seems this error code is used for many situations. In my case, the problem started to happen after we set our DataProtectionClass to NSFileProtectionComplete. I'm not sure of the fix yet.
Removing the entitlement wasn't and option for me as I wanted to use "iCloud", so after digging a little I found that the problem was that "iCloud" not being enabled on the app configuration on the "iOS Provisioning portal".
Enabling it and regenerating the provisioning did the trick for me.
My issue was that the Distribution Profile was created as Ad hoc rather than In House making the device I was running the app on not accept it.
Make sure that the device is added to the Provisioning Profile or create an Enterprise Profile.
Another pitfall while trying to correct this error: you'll also need to replace provisioning profiles from embedded extensions.
In my case, the provisioning profile of my iOS app was just fine. It took me hours to figure out that the provisioning profile of my widget (or Today Extension) needed an update, due to a new device to test on.
Make sure you check all relevant and related targets, not only the target you're trying to execute.
Go to Target -> Capabilities - > Associated Domains
Press Fixed issue Button
Run Project
I had a fully working build environment before upgrading to iPhone OS 3.1 and Xcode 3.2. Now when I try to do a build, I get the following:
Code Sign error: Provisioning profile 'FooApp test' specifies the Application Identifier 'no.fooapp.iphoneapp' which doesn't match the current setting 'TGECMYZ3VK.no.fooapp.iphoneapp'
The problem is that Xcode somehow manages to think that the "FooApp Test" provisioning profile specifies the Application Identifier "no.fooapp.iphoneapp", but this is not the case.
In the Organizer (and in the iPhone developer portal website) the app identifier is correctly seen as 'TGECMYZ3VK.no.fooapp.iphoneapp'.
Also, when setting the provisioning profile in the build options at the project level, Xcode correctly identifies the app identifier, but when I go to the target, I'm unable to select any valid provisioning profile.
What could be causing this problem?
Update: I've tried to create a new provisioning profile, but still no luck. I also tried simply changing the app identified in Info.plist to just "no.fooapp.iphoneapp". The build succeeds, but now I get an error from the Organizer:
The executable was signed with invalid entitlements. The entitlements specified in your application's Code Signing Entitlements file do not match those specified in your provisioning profile. (0xE8008016).
This seems reasonable, as the provisioning profile still has the "TGECMYZ3VK.no.fooapp.iphoneapp" application identifier.
I also double checked that all certiicates are valid in the Keychain.
So my question is how I can get Xcode to see the correct application identifier?
UPDATE: As noted below, what seems to fix the problem is deleting all provisioning profiles, certificates, etc., making new certificates / profiles and installing them again. If anyone has any other solutions, they would be welcome. :)
I had to manually remove the provisioning profiles from my phone, then rebuild the apps after doing a "clean all targets" from the build menu.
That's under Settings -> General -> Profiles
This happened to me when I got a new Mac. You'll fix it, don't worry
Well, as seems to be the case with a lot of these code signing issues, deleting all provisioning profiles, certificates, etc. and revoking and generating everything all over again turned out to do the trick. I even created a new bundle identifier, app identifier, etc., and now AdHoc distribution is working again.
I had this same error yesterday. I tried all of the various resetting procedures in the other answers with no luck. Eventually I also
rebooted my mac
rebooted my iPhone
deleted all of my iphone provisioning profiles from the phone using XCode
deleted all profiles from my mac (~/Library/MobileDevice/Provisioning Profiles for me)
what else? deleted build folder, restarted XCode, installed update to 3.1.2 sdk, sacrificed a chicken.
Lo and behold, it now works, the error is gone. This is serious voodoo territory.
Also, make sure that you added a reference to the Entitlement filename "dist.plist" in your project configuration CODE_SIGN_ENTITLEMENTS.
Check both Code Signing Entitlements in info for both the Build Target and the Main Application - if Code Signing Entitlements says on either then remove it
In XCode, in the "Groups & Files" pane, expand "Targets" and double-click on your app's target.
This will bring up the Info pane for your target. In the "Build" section, check the "code signing" section for any old profiles. This has happened to me many times particularly after an upgrade to a new version of the sdk and iphone os
Quick Hack if you are on Xcode 4.3.
In Xcode under Project Settings > MyTarget > Summary tab all the way in the bottom there is a checkbox that says "Enable entitlements". When I unchecked it, it made the error go away.
Inside Resources/Entitlements.plist there is a Boolean "get-task-allow" if that is not checked, check it ON. This fixed the issue for me.
After being stumped by this for quite a while I revisited the settings and discovered that I had reversed the 'Code Signing Identity' and the 'Any iPhone OS Device' entries. - The clue I had as to this happening was shown by.
Deleting every profile off the phone
Build and Go
At this point xcode attempts to provision the phone (device)
Examine the phone to see which provisioning profile has been added.
As I prefix all my profiles 'AdHoc' or 'Development' or 'AppStore' I saw immediately that the install process was putting a development profile on the device and not an AdHoc profile.
The device may not be in the list. Try modify your provisioning profile.
Just to add a note here: I encountered the same error (0xE8008016) after replacing my Macbook's logic board (although I imagine you'd have the same problem on a completely new mac), and after hours of going around in circles I realised that the iPhone Developer Program Portal had separate certificates for Development and Distribution.
A change in hardware means you need to reissue both certificates - I'd reissued Developer but not Distribution. Because my name hadn't changed when my hardware did (and certificates are identified by the owner's name), this made it a tricky problem to spot ;) Hope this saves someone else my frustration.
For reference, I ran into the same issue and deleting all of my profiles, existing certs and everything from my local drive and from the developer portal, and deleting my existing devices and re-adding them (developer portal) seemed to do the trick.
The problem is in the "project.pbxproj" file located inside the [your project].xcodeproject file. If you feel brave right click on the .xcodeproject and view contents then open "project.pbxproj" with a plan text editor. Inside search for the offensive path and correct it. In my case I just removed the entire path and just left "Entitlements.plist" and it cleard my issues up. I STRONGLY reccomend backing up your .xcodeproject before attempting this.
Double click the target then select the "Properties" tab. There change the com.yourcompany.${...}.
Another cause is if the device you want to install onto is not an approved device in the Distribution Certificate.
Sometimes Xcode does not automatically copy your provisioning profile to the right location.
In my case, that was true.
Check that your provisioning profile is in ~/Library/MobileDevice/Provisioning Profiles directory and if not just drag and drop, clean and build
I am having a problem with ad-hoc distribution on my iPhone. I have developed an application with SDK 3.0. I have a developer's license. I have added certificates and provisioning profiles in my project. So, no problem with that.
But, when I try to install the app on my iPhone, it compiles the project and then displays the error: "The executable was signed with invalid entitlements" in the Organizer window. Am I missing something? I have upgraded my iPhone from 2.2.1 and have downloaded latest SDK from Apple.
Please help me with this issue.
There are pretty good instructions in the 'Portal Program'. If you log into
http://developer.apple.com/iphone
Then click Distribution on the left, and click the
Creating and Downloading a Distribution Provisioning Profile for Ad Hoc Distribution
link at the bottom.
Here's the key bit:
For Ad Hoc Distribution, complete the following:
In the File Menu, select New File -> iPhone OS -> Code Signing -> Entitlements.
Name the file “Entitlements.plist" and click ‘Finish’. This creates a copy of the default entitlements file within the project.
Select the new Entitlments.plist file and uncheck the “get-task-allow” property. Save the Entitlements.plist file. (in Xcode 4, get-task-allow is called "Can be debugged" )
Select the Target and open the Build settings inspector. In the ‘Code Signing Entitlements’ build setting, type in the filename of the new Entitlements.plist file including the extension. There is no need to specify a path unless you have put the Entitlements.plist file somewhere other than the top level of the project.
Click ‘Build’. (Note: Your binary must contain a flattened, square-image icon that is 57x57 pixels. This icon is displayed on the iPhone or iPod touch home screen.)
This error also may occur if you're trying to profile an app where the device is not included in the provisioning profile.
Make sure your device is included in the dev provisioning profile you want to use. Somehow the error message is misleading. My entitlements were actually ok.
I have found that "get-task-allow" needs to be checked for Development builds but unchecked for Distribution builds. The easiest way to accomplish this (AFAIK) is to have two entitlements files in your project: Entitlements.plist and EntitlementsDebug.plist - and to reference the proper one in the build project settings for the various configurations in your project.
Code signing entitlements are no longer necessary for Ad Hoc builds in Xcode 4 - see details notes in Apple Technical Note TN2250
If you once come into the situation, that checking "get-task-allow" seems to be required in order to deploy your debug (!) build to your phone, check this:
a) Check the build setting. There should be no entry in "Code Signing Entitlements" for Debug
b) Remove Entitlements.plist temporarily and build your debug version. If it complains about a missing Entitlements.plist, then you probably have the same situation, I had to fight today.
c) Build again with Entitlements.plist and enable "get-task-allow". If it works now, you probably have the same problem:
After messing around with new profiles I couldn't deploy my Debug build to the phone. AdHoc was fine. I checked a) - empty.. Hmm. I checked b) - complains. c) - worked...
After all I examined project.pbjproj in an editor and - although the GUI did claim, that there was no entry for "Code Signing Entitlements" in fact there was one in the Debug section. I emptied it and was done.
This is because your device, on which you are running your application is not selected with your provisioning profile.
So just go through Certificates, Identifiers & Profiles select your iOS Provisioning Profiles click on edit then select your Device
I have just had an exciting three hours battling with this. I have just upgraded a project to 4.2 and for some reason it just wouldn't work.
I eventually removed the Entitlements.plist file and then created a new one.
File > New File > Code Signing > Entitlement
Name the file Entitlements.plist
Make sure it's in the Resources group in xCode.
It didn't put in the get-task-allow BOOL type in the Entitlements.plist file. I added it, checked it, saved it, unchecked it, saved it. This made me feel better.
I then removed the Adhoc and Release profiles I had created. Re-downloaded them from the Provisioning Portal and droped them back into the xCode organizer.
I then went into Build Settings and made sure the correct profiles were assigned to the Debug and Release profiles.
I then changed the to Release / Device. Hit the build button and it worked.
I have no idea why.
John's answer is 99% correct. I found that (at least in my configuration), you have to open the Build settings inspector for the PROJECT. The build settings for the target do not contain "Code Signing Entitlements". Perhaps this doesn't make a difference if you have only one target in your project. But if you have multiple targets, you need to go to the project build settings. In any case, after doing what John said, my ad-hoc distribution build worked perfectly.
In Xcode 5.1, if you go into Preferences -> Accounts -> View Details...
Make sure the Signing Identity status is Valid. If it says Revoked, hit the Plus button and add the appropriate signing identity: iOS Development or iOS Distribution. Xcode will replace it with a new, valid one.
For me that solved it:
https://coderwall.com/p/-ckobg
Open Project.xcodeproj > project.pbxproj
Remove all lines like these:
PROVISIONING_PROFILE = ...
"PROVISIONING_PROFILE[sdk=iphoneos*]" = ...
CODE_SIGN_IDENTITY = ...
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ...
Set provisioning profiles & code signings for the target again
pJosh, this might help understanding. In my case, my Team Provisioning Profile was expiring (the Provisioning Portal indicated it is managed by XCode), as well as the device testing profile for the app. (I still don't know why, but the portal had a "Renew" button next to the team profile, but it wouldn't do anything when I clicked it.)
So, I deleted the profiles about to expire, then in XCode go to Organizer (Command-Shift-2), under Library / Provisioning Profiles, I deleted the expiring ones. Then click "Refresh" at the bottom, enter my Apple ID, and it renewed the expiring ones.
Finally, on my Target, I went to Build Settings, Code Signing, and made sure to select the provisioning profile. Voila, now it builds to my device.
Just got this same error code.
It seems there are different things that cause this and therefore different ways to fix it.
In my case, I had two different devices with the same name (an iPhone 4 and an iPhone 4S). Changing the name of one of them fixed this error completely for me...
I was trying to add iCloud support to my existing app, but found that after adding entitlements and configuring iCloud, my app would no longer debug.
I realised that my generic iOS development certificate had a different APPID from the app I was working on. So to fix it, instead of using my generic certificate I created a specific development certificate for that APPID.
I refreshed my provisioning profile in XCode, cleaned out the app, disconnected my device, restarted XCOde and connected device and ran, and it now works a treat!
I also spent several hours fighting with this as well. The fix is real simple. Edit your Entitlements.plist file in the root of your project's directory. Find the line that says <key>get-task-allow</key>. Underneath it should be <false/>. Change that to <true/>.
Sorry that this is very late, but I just was looking at this question and found something that worked for me. I went to PROJECT->Build Settings and found the Code Signing section. Beside debug, my distribution profile that said Iphone Distribution: MY NAME was selected. I instead selected Iphone Developer: MY NAME on the drop-down list under IpodProfile (for bundle identifiers com.myName.myApp which was the provisioning Profile for my device. Hope this helps!
I just had this happen to a developer on the team I administer.
It turned out his developer certificate expired and after renewal, I neglected to add his certificate to the provisioning profile his app used.
I had not agreed to the new updated licensed agreement from apple.
Briefly : Please log in to your developer's account -> profile's -> review -> read the agreement or get your lawyer read it for you -> agree (at your own will) -> and again click profile's to check the status of your profile.
In my scenario the valid code signing entity was not showing up. When i followed the above procedure it was visible and i was able to run the app on the device and/or create the iPA file without much difficulty.
Had this issue occur when everything seemed to be setup correctly, build setting were pointing to correct provisioning profile, code signing was properly setup, etc.
Issue occurred because I had just created a new scheme and hadn't regenerated my CocoaPods for the new configurations. As you can see from the image, the new ad-hoc configuration is pointing to the Pods.production configuration, instead of a Pods.ad-hoc configuration (and test respectively)
To fix:
Set the offending configuration to None -- cocoapods wouldn't generate the configs unless I did this
Close XCode
Run pod install
Re-open XCode and set the new scheme's configurations to the newly generated configurations.
That's it!
Check if you're device is included in the provisioning profile.