I have just updated to Xcode 8 and I now have two options for app signing, Provisioning Profile and Provisioning Profile (Deprecated).
Why is one deprecated, and what is the difference between the two?
Update 2017/02/13
User interface for managing signing certificates and provisioning profiles has been changed at Xcode 8.3 beta 2.
Changed the user interface for managing signing certificates and
provisioning profiles. Certificates are managed from the Accounts
preferences pane by selecting a team and clicking Manage Certificates.
Automatically managing signing is recommended, however if your app
requires manually signing provisioning profiles are managed in the
General tab of the project editor. Use the Provisioning Profile
dropdown to import or download profiles. In addition it displays
profiles that match the current signing configuration of the target.
(28641027)
Why is one deprecated?
I think Its deprecated because the signing system has been rewritten in Xcode8.
The signing system has been rewritten to include a new mode for
automatically managing signing assets, in addition to a dedicated
manual mode where the profiles for the target must be explicitly
selected. When automatically managing signing assets, Xcode will
create signing certificates, update app IDs, and create provisioning
profiles. For manual mode, only custom created profiles can be
selected and Xcode will not modify or create any signing assets. Xcode
now encodes profiles in the target using the
PROVISIONING_PROFILE_SPECIFIER build setting. This setting allows
specifying both the team ID and the name or identifier of the profile.
There are some Signing relate known Issues with Xcode 8.1 you should known.
So maybe we should not set Provisioning Profile in Build Setting tab, switch to General tab , and set in Signing category instead.
If you set provisioning profile in Build Setting and enable Automatically manage signing in General tab Xcode will complain about that.
What is the difference between the two?
I also updated to XCode 8 and ran into this as well. Both the Provisioning Profile and Provisioning Profile (Deprecated) were set as blank on my project in XCode 8.
I tried setting them back to what they were for each environment but the Debug environment had all of the options in the dropdown removed.
After creating an Archive and uploading to iTunes Connect I got a notice that the provisioning profile wasn't quite correct, which was working fine prior to XCode 8.
Following what the others have posted about XCode 8 getting an update to its Signing, I went to the general tab and noticed a new section that allows you to have XCode automatically manage the signing. I checked that box and now it looks like this:
I have not uploaded a new Archive to iTunes Connect yet but when I do I'll add an update here to see if it's resolved the Provisioning Profile warning.
UPDATE:
After selecting Automatically manage signing in XCode and re-sending to the App Store it's still complaining so that didn't quite work. Might have to remove and re-create all provisioning profiles to get this working. What a pain. Thanks Apple.
In Provisioning Profile (Deprecated) description, information is The UUID of a valid provisioning profile. A missing or invalid profile will cause a build error (deprecated, use [PROVISIONING_PROFILE_SPECIFIER] instead).
I found the link https://possiblemobile.com/2016/06/code-signing-xcode-8/.
Please follow these steps
Select project TARGET and go to GENERAL tab
Under Signing check the option Automatically manage signing
Hope that helps !
I'm trying to upload a new Mac app, designed under Xcode 5, to the Mac App Store. I have done this before for many apps with previous Xcode versions, so I thought I had it mastered, but I am banging my head against this one. It must be some trivial issue, but I don't see what!
Description of my settings:
My target's "General" settings have "Signing: Mac App Store", then my account as "Team"
I have sandbox enabled ("Capabilities" tab of the target)
In "Build Settings", I have:
CODE_SIGN_ENTITLEMENTS = MyApp/MyApp.entitlements
CODE_SIGN_IDENTITY = Mac Developer
PROVISIONING_PROFILE = Mac Team Provisioning Profile: com.myname.myapp
The app builds and runs fine. Yet, when I validate it for App Store distribution, I get the following error:
Invalid Provisioning Profile. The provisioning profile included in the bundle MyApp [MyApp.app] is invalid. [Missing code-signing certificate.] For more information, visit the Mac OS Developer Portal.
What am I missing?
Solution
You should review the section in the App Distribution Guide covering the management of certificates and provisioning profiles for Mac Apps. Specifically the section on Troubleshooting will provide the most insight and covers fixes for the provision profile issue you've reported. I recommend you explore the entire troubleshooting area as sometimes certificate expiration dates impact the validity of provisioning profiles.
Im using xcode and I want to upload my app. In order to upload I need to build my app with the distribution provisioning profile. I have a valid distribution provisioning profile but when i try to build xcode gives my this error:
Code Sign error: The default keychain doesn't have an identity matching the profile 'Dodge Cars Free Distribution1' and identity 'iPhone Developer: Rajeev Arora (4DL7HDW3F2)'
What i understand is this means xcode is trying to check the validity of my distribution provisioning profile with a development certificate. Obviously this wouldn't work. How can i get xcode to recognize that my provisioning profile is for distribution? I've tried making a new distribution profile with no results.
EDIT
I found a solution I guess. I tried building with one of my old provisioning profiles and it worked
If I can remember correctly, these are the steps needed to be done to use the Distribution provisioning profile:
Import the Distribution certificate into Keychain Access
Dragged the Distribution Provisioning Profile into the Xcode icon on your Dock
Set in Build Settings to use iPhone Distribution in the Code Signing section/field
Edit from comments: You should not press the Run button, as it will always give an error. You should click Product > Archive from the menu. The archive of your project should show up in the Organizer window > Archives tab. From there, you should be able to Submit your app.
So, I built my app for App Store submission using my distribution profile and submitted it fine.
Now, i come to test my new update on my iPhone, and Xcode keeps telling me
"Cant run 'my app' on iPhone 'Joes iPhone'.
The iPhone “Joe’s iPhone” doesn’t have the provisioning profile with
which the application was signed.
Click “Install and Run” to install the provisioning profile
“Distribution Profile” on “Joe’s iPhone” and continue running “myapp.app”.
My configuration is Debug, and the code signing identity is set to iPhone Developer, in both the project and target settings.
How can i get Xcode to start using the developer profile again?
Thanks
I had to go to the Project menu and select "Edit Active Target" -- even though my provisioning profiles were right, that target was still set to my App Store release profile, not my development profile. I don't know the root cause of this, but it did fix the problem.
This is okay. If you click on "Install and Run" XCode will install the provisioning profile to the phone, then will install the application and run it.
Moszi
Redownloaded certificates and cleaned all targets
I have just added a provisioning profile to XCode (needed to support notifications and in app purchase), setup as needed the build configuration for ad hoc distribution, and tried to run the app on the device (I have done this several times in the past, without any problem).
The app is installed, but it does not start. On the console, I see the following message:
Error launching remote program: failed to get the task for process 82.
Error launching remote program: failed to get the task for process 82.
The program being debugged is not being run.
The program being debugged is not being run.
However, if I start the application on the device manually, it works as expected. I have recently installed the latest XCode 3.2 for Snow Leopard. Is this a known bug of this version of XCode or am I doing something wrong?
EDIT: It works fine with release distribution using the development provisioning profile.
I have checked again the ad hoc provisioning profile to make sure it includes the device I am using.
The ad-hoc profile doesn't support debugging. You need to debug with a Development profile, and use the Ad-Hoc profile only for distributing non-debuggable copies.
I have had problems debugging binaries on the device via XCode when the app includes an Entitlements.plist file, which is not necessary to install onto the device for debugging. In general, then, I have included this file for release builds (where it is required for the App Store) and removed it for debugging (so I can debug the app from XCode). That may be your problem here.
Update: As of (at least) August 2010 (iPhone 4.1 SDK) the Entitlements.plist is no longer necessary to include in your application in many cases (e.g., distribution through the App Store.) See here for more information on the cases when Entitlements.plist is required:
IMPORTANT: An Entitlements file is generally only needed when building for Ad Hoc Distribution or enabling Keychain data sharing. If neither of these is true, delete the entry in Code Signing Entitlements. (emphasis mine)
I Had the same issue, but resolved it by following simple following steps :
Make sure you have selected debug rather than release.
In Debug configurations, in project settings, you should have selected developer's profile & no need of specifying the entitlements plist.
Also same setting are there under: Targets: , if not manuall change them to the above for the debug config. It will work.
All the best.
This took me a while to figure out.
If you are using a distribution / ad hoc/ profile you cannot test it through xcode. You will get the error: The program being debugged is not being run.
You can build the app, go to the products folder in your app in xcode, click on the file with your project name and choose reveal in finder. You can drag this app into into iTunes and sync and that point you can test your app on your device.
If you are getting such error, the only reason could be you using a Distribution profile rather than a development profile in Xcode or a missing Entitlement property. If you are not using the Entitlements.plist, then the only possible error could be the app is getting packaged with a distribution profile. You could verify this confirming the build logs. To change this, go to Build Setting of the project and verify Code Signing Entity setting. For debugging to work, this setting should be a developer profile for the configuration that you are currently using.
https://developer.apple.com/library/ios/#qa/qa1682/_index.html
For instant results, delete all mobile provisioning profiles from xcode and install the developer profile that you intend to use.
Almost 2hrs on this issue! And finally I solved it by replacing the
iPhone Developer
to
iPhone Developer: My Dev Account Name
for Debug's CODE_SIGN_IDENTITY:
Select Project Target
Build Settings
Search by "code sign"
Modify CODE_SIGN_IDENTITY section's Debug row with "iPhone Developer: My Dev Account Name", not just "iPhone Developer".
I've no idea why it works, but it does! At least for me!
Environment: Xcode 5.0 (5A1412).
Check ur code signing section.make sure that the code signing is iPhoneDeveloper code signe
Open Entitlements.plist and set the boolean value get-task-allow to YES - the debugger can attach now!
Go to Edit Schemes and under Run -> Info -> Build Configuration, change from Ad-Hoc to Debug. Click OK to save.
It might be that you have an expired development profile on your phone.
My development provisioning profile expired several days ago and I had to renew it. I installed the new profile on my phone and came up with the same error message when I tried to run my app. When I looked at the profile settings on my phone I noticed the expired profile and removed it. That cleared the error for me.
I received this error when I tried to launch app from Xcode as I figured I had selected distribution profile only. Build was successful so I created .ipa file. I used testflightapp.com to run the app. You can use iTunes as well.
As stated by Buffernet, you cannot use a distribution provisioning profile to debug. When I switched to a developer provisioning profile, I got the error "A Valid Provisioning Profile For This Executable Was Not Found".
A quick google for this lead me to the article listed below. From there, I realised that I hadn't got a valid development provisioning profile as my iPhone hadn't been added to the Provisioning Portal and all the other stuff involved.
Make sure you run an iPhone developer provisioning profile and your device has been added to the provisioning portal!
http://iosdevelopertips.com/xcode/a-valid-provisioning-profile-for-this-executable-was-not-found.html
Yes , Provisioning profiles which are for distribution purpose, i.e. Distrutions provisioning profiles do not support debugging and gives this error. Simply create and use debug provisioning profile (take care of this when creating provisioning profile from developer.apple.com account).
I just changed my bundleIdentifier name, that seemed to do the trick.
I've patched my project with JailCoder http://jailcoder.com/ and problem resolved.
Just download It and drag your xcode project to It.