Add Provisioning profile without adding account in xcode: 8.3.3 - ios

I have created a new project in XCode and now I want to sign in with development mode.It asks me to login with developer account. But I don't have account, I have provisioning profiles and certificates. I have tried many ways but they din't work. I tried to off auto signing but i don't get it also.
Please check this screenshot.

How did you create provisioning profile and certificates if you don't have a developer account?
A developer account is needed, since the profiles and certificates would be "linked" to that specific account.

Unfortunately, Xcode 8 doesn't allow you to easily switch to manual code signing for new projects (which default to automatic code signing, and that requires an Apple ID for a valid developer account). If you want to switch the project to allow manual code signing (so you can use the code signing identity provided by your client), you must make some manual changes to your .cxodeproj file.
First, make sure you have closed the Xcode project. Then, find your xcode project (.xcodeproj) in Finder and right click on the icon, then select "Show Package Contents". Inside the Finder window, find the "project.pbxproj" file. Right click on that file and open the file in your text editor of choice (you can open this in Xcode). Find all occurences where you find the text "ProvisioningStyle = Automatic;" and replace it with "ProvisioningStyle = Manual;". Save the pbxproj file and then re-open the .xcodeproj in Xcode. You should now see options for specifying the code signing identity in your project settings.
You can find some more details about this, including ways to script this in this answer.

Related

Xcode Automatic sign in and provisioning profile errors

I'm trying to run my iOS app on TestFlight. the app runs on the simulator but when I connect it to my iPhone and try to run it, the ffollowing error shows up.
Automatic signing failed
Xcode failed to provision this target. Please file a bug report at https://bugreport.apple.com/ and include the Update Signing report from the Report navigator.
Provisioning profile "iOS Team Provisioning Profile: com.uditi.clima" doesn't support the Keychain Sharing capability.
Provisioning profile "iOS Team Provisioning Profile: com.uditi.clima" doesn't include the keychain-access-groups entitlement.
I tried to change my bundle identifier. I am new to iOS Dev and not sure how things work. error screenshot
I switched on keychain sharing but an error appears - Automatic sign in failed
Thanks!
This is due to some certification issues over at Apple, but in the meantime here's a workaround:
Open the project in Xcode. Select the project from the Project Navigator, then select your Target from the column.
Click on the General tab, and under the Signing section, enable "Automatically manage signing".
Next, click on the Capabilities tab and make sure both "Keychain Sharing" and "App Groups" are switched to "On". Ignore any error messages.
An entitlements file will be generated in the Project Navigator. The file is recognizable by its extension .entitlements.
Move the .entitlements file to the root folder by dragging it until it's right underneath the project file.
Now, back in the "Capabilities" tab, turn off "Keychain Sharing" and "App Groups". Ignore any error messages.
Select the project and go to its "Build Settings" tab. Directly beneath the tab, select both "All" and "Combined". Scroll down (or use the search, upper right) to find the "Code Signing Identity" section and change all of the options to iOS Developer.
Next, scroll to (or search for) the "Code Signing Entitlements" section. Double click the text field next to "Code Signing Entitlements" and type in the entire name of the .entitlements file you moved before. For example, HelloWorld.entitlements.
This should solve the provisioning error until Apple addresses these certification issues.
Just change Trust to System default on Developer ID Certification Authority
if u want to use your m1 mac as phone:
Are you maybe running Xcode in Rosetta mode? I had this issue, exactly as mentioned above. To fix this I closed Xcode, turned off Rosetta and it's now working as expected.
https://developer.apple.com/forums/thread/676083
Recently I faced the exact same problem,
Searched a lot with no success on the way others suggested.
I have found a work around by just removing every single capability below signing... like app group, network extension, keychain sharing, etc... I just remove everything below signing and then add them again right away then all error gone with a successful build.
Reboot of my laptop fixed the problem

Entitlements don't match Provisioning Profile (0xE8008016)

today I finally got my Company-Developer-Account. I'm working on an App, first on my private Account and today I wanted to move the App to the company account. So I created a new Bundle-Identifier on developer.apple.com and changed the Bundle-Identifier also in my Xcode-Project. Furthermore, I've added the Account to Xcode, changed Signing to my new Company Account and let Xcode fix the Provisioning-File-Troubles. (In Xcode I see two Team-Members from one Account, one is Agent, the other User. Maybe it's important that I've choose the Agent-Team-Member. Unfortunately I can't change because then I get the error "change to a unique bundle-id, because the bundle-id is already on the Agent-Team?^^) Running with the Simulator works fine, but when I want to test on my Phone I get the following Error: The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).
If I press the I next to the provisioning file, I see the following Entitlements:
And under Entitlements I've just the Push-Notifications enabled. But this was like this before changing Bundle Identifier
I had this same problem and none of the solutions I found on stack overflow, or github worked for me.
Here's my solution:
Select your project in the Project navigator
Select the "General" tab.
To the left of the "General" tab, select your target to the left; (this should show a dropdown with a list of targets)
Below your current target you should see an item {your project}Tests; select that.
Check the signing properties in the general tab and make sure they are valid.
This was the problem for me. Hope it helps.
Xcode 9 GM.
Error appears if manual signing turned on.
Turn on automatic code signing.
Turn off automatic code signing.
You need to go through all the details where your provisional profile and certificate getting set from the main page.
E.g. In all targets - > Build settings -> Code signing identity and provisinign profile and set your correct profiles every where in the application.
sometimes when you are selecting manual codesigning then it is not reflecting correcly in all places.
Try to uninstall your application from your device and then run your app on Xcode , i think that current app that was on your device signed with old account so you cannot run your new app that was assigned with new account , hope to help .
For me, I ended up getting this error when I did not have the private key associated with the certificate that was being used to sign the app. Make sure you open Keychain Access and verify that you have a private key for the certificate that is associated with your provisioning profile.

Certificates and Provisioning Profiles for Push Notifications

I'm having trouble with the process. I have got push notifications working for Development. I have read multiple guides and questions, and for some reason - either their guides are deprecated in iOS 8 or my Xcode is bugged - I am having issues with provisioning profiles.
For the purposes of this question, I have generalized most of the terms for privacy concerns.
I'm currently greeted with the bug - Failed to code sign "App". There is a Fix Issue button, but I made sure I did not click that; I'm afraid it'll only complicate my problems.
I've followed the Parse iOS Notifications Guide and configured my app according to the guide. I've done the following:
Requested a certificateSigningRequest from Keychain Access
Created a new App ID in iTunes Connect, with a new bundle identifier. I made sure I went into my info.plist in my app to change and match the new App ID created in iTunes Connect.
Using the new App ID in iTunes Connect, I created the Production SSL Certificate.
Installed it to my KeyChain Access, and exported it to upload to Parse.
Next, I deal with the Provision profile. Once again, I went in iTunes Connect, created a new provisioning profile, made sure to link the correct bundle ID with it, and downloaded it.
Here comes the part that may have fudged up the process. In the Parse Notifications Guide, they instructed users to double click the downloaded file - in my case, it was called "AdHocDistribution.mobileprovisioning", which will install itself into Xcode.
Download the generated provisioning profile from the next screen by selecting the "Download" button.
Install the profile by double-clicking on the downloaded file.
This should open Xcode's Organizer in the Devices pane. Your new provisioning profile should appear in the Provisioning Profiles section of your Library. Make sure that the status for this profile is "Valid profile". If the profile is invalid, make sure that your developer certificate is installed in your Keychain.
Double clicking the mobileprovisioning file did not lead to any discernable feedback telling me that it was installed.
Finally, I modified the code signing fields in my project and target's build settings to match the one I downloaded.
Finally, I try running the app, and the error popped up. Please help!
Create a provisioning profile of the application using ADHOC from dev account.Download and control drag it to Xcode, Under provisioning profile in your screenshot select that.
Do the same for Target and project and you will be good to go!
P.S. also select the Team as your dev account
Please follow the following steps..
Check all your targets's Code signing Section. Like Project and Test Target.
Check the project "identifier" in all your .Plist file.
Add the account in Xcode Account section, by choose from :
XCode-> Preference - > Account -> click on +sign and add your apple developer account.
Hope it will help you.

IOS: Code signing error Xcode 6.3.1 [duplicate]

I've build a new application which is going to support IOS 7. I got the new XCode 5 GM and tried to sign my apps using my fresh provisioning profile and distribution certificate, but i'm having trouble with distribution. I constantly get the following error:
"Invalid Code Signing Entitlements. The entitlements in your app
bundle signature do not match the ones that are contained in the
provisioning profile. According to the provisioning profile, the
bundle contains a key value that is not allowed:
'[XXXX.com.sample.company ]' for the key 'keychain-access-groups".
Also the same error for a key value called application-identifier.
Screenshot of the errror:
The solution lies in the new option in Xcode 5 which says provisioning profile. Just set the project target's provisioning profile to the right one and it'll work.
If you are like me and you think you tried EVERYTHING, archived your project over ten times, banged your head on the keyboard and still get this error. Please do yourself a favor and simply Restart XCode, it worked for me. Sometime Apple... I hate you.
I went through many of the steps above but what finally worked for me was refreshing my profiles in Xcode. Not sure why it was necessary since my app's distribution profile was showing up in the list already. Here are the steps:
Xcode Preferences
Accounts tab
Select your Apple ID
Hit the View Details button in the Apple ID detail panel
Hit the Refresh button in the lower left corner
In my case, i activated the same capabilities in Xcode that in Application services in developer.apple.com. Thats works for me
In my case (sorry) I switched "Team" to "None" in -> General -> Identity
In another case I needed to switch this identity from "None" to the developer account managing the identities and profiles.
Xcode sometimes messes up greatly with code signing, it seems. Or, we mere mortals simply aren't clever enough to understand what it is doing, of course. Don't give up, we're all going through some code signing torture at times!
In my case, I had to set correct Provision Profile for Release, and then had to restart Xcode. Before restarting, it had same provision profile, and didn't work. So, sometimes a restart can do miracles. Maybe this helps somebody.
If someone uses a GameCenter then check this section in your target. I worked with some old project and there were 2 errors (but everything worked fine). Disabling and enabling it back solved this problem.
Most likely this action adds Game Center entitlement to App ID and and handle it itself.
1.Go to project folder, delete *.entitlements files.
2.Then go yo in xcode project target -> build settings -> code signing entitlements - delete values
3.Clean
4.Run
Ah, this glorious error. For me whenever I see this error I check the following things:
1. Allow XCode to access your provisioning profile info all the time - If XCode keeps asking when you start it up to have access to your computer's private files so that it can get provisioning profile information with the options to allow access always, not now, or just one time - set it to ALWAYS ALLOW access
2. If you have any old entitlement files kicking around your project get rid of them and any sign of them - if you see a .entitlements file in your project delete it (or at least remove the reference to it if you aren't sure you are ready to outright delete it), then make sure the 'Code Signing Entitlements' line under the 'Code Signing' section in Build Settings is empty
3. Check your Application Services online and match them up with your Services in XCode for the app - Go to the Apple Member Center and check the App ID for your app, click on the app to see its 'Application Services' and see what you have checked, then go to XCode and check your 'Capabilities' section to make sure the two have the same list of Apple services on both
4. Make sure you assign a valid Provisioning Profile to your app before validating - double check your provisioning profile for your app in the Apple Member Center, make sure it isn't expired, has the right App ID with the correct bundle id and distribution. Download and click on the new provisioning profile to make sure XCode has it, or go to XCode > Preferences > Accounts > click on your account and 'View Details' then click the bottom corner button to Sync all the profiles to XCode. You should have the profile available to select now in the 'Code Signing' section. Once you have the correct provisioning profile then you can set the 'Code Signing Identity' lines to the correct option for that provisioning profile.
Note - if doing a distribution certificate it can help to set all the 'Code Signing Identity' lines to the identity you use for distribution including the debug lines
5. IF ALL ELSE FAILS - Clean your project and Restart XCode and some Apple magic may just work fine the next time you open your project and try to Validate
If you're building an old 3.1.5 project, Xcode 5 has some bugs which unfortunately makes Benjamin's answer impossible, as there are no Provisioning profiles to pick from. After many a late hour of tormented reading of Xcode project files I came up with this solution that worked for me:
In the Utilities pane (to the right) in Xcode 5, under project Document, change from Xcode 3.1-compatible to Xcode 3.2 compatible.
Enter your organization name.
Close project.
Open your project file, e.g. open -a TextEdit path/to/name.xcodeproj/project.pbxproj
Remove the two Distribution clauses (isa=XCBuildConfiguration).
Remove the two accompanying lines in buildConfiguration (one in PBXNativeTarget and one in PBXProject XCConfigurationLists)
Now you're ready to re-open, archive and submit to App store - voilà! It works again!
How I think it works
I assume this works because Apple somewhere along the line decided to drop the need for any separate distribution config, which is a good thing. When I archive, Xcode automatically code signs for distribution. That's the way it should have been implemented in the first place, it's just a shame that Apple can't make auto-migration part of the IDE; instead they force us developers to spend man-decades to make this stuff work.
I have been struggling with this problem for more than a day now, trying all kinds of solutions suggested here and elsewhere on the internet. Nothing worked...
But, I finally managed to solve the problem!
The problem I had was with an old app that I haven't touched in over 3 years, and now I was about to release a long awaited update. Since the time I released the app, Apple has been updating how the certificates and App Id works. They have introduced the concept of Team Id which seems to be recommended to use.
In particular, the Apple's "Certificates, Identifiers & Profiles" site, has seen a lot of changes since then.
There I realized that the Provisioning Profile I was using for App Store Distribution were connected to the App Id ED8xxxxxxx.com.rostsolutions.* but looking at the App Id for the game I was about to submit I notice that the App Id was ATMxxxxxxx.com.rostsolutions.Swisch. So the App Id prefix did not match!
That seemed to be the root of the problem. So what I did was to create a new Provisioning Profile connected to the App Id ATMxxxxxxx.com.rostsolutions.Swisch instead. Using that Provisioning Profile I successfully submitted my app to App Store and now I just keep my fingers crossed that everything else works fine at Apple's side.
(I first tried to connect to new Provisioning profile to the wildcard Id ATMxxxxxxx.com.rostsolutions.* instead, but that didn't seem to work).
But what puzzles me is that when I look at the old App in iTunes Connects and goes to Binary Details, it says that the App Id is ED8xxxxxxx.com.rostsolutions.Swisch. So why is the "Certificates, Identifiers & Profiles" page listing the App Id as ATMxxxxxxx.com.rostsolutions.Swisch?
My problem was solved by removing my Apple ID from Preferences->Accounts and then adding it back again. Then all my provisioning profile files showed up on the View Details utility panel. I was mistakenly choosing "Mac Team Provisioning Profile:*" instead of the actual distribution provisioning profile for the project thinking that it was a generic selection. Provisioning files must be specific to the project. Oh, and BTW, make sure your provisioning profile has the correct entitlements (for example, Maps). I managed to release an app with OSX Maps without the entitlement and Apple approved it -- but no Maps showed up on the production version!
In my case, I had the same problem, my solution was to change the 'Release Provisioning Profile' in the Build Settings before doing Archive. I do this twice, once for App Store distribution, and another one for Ad Hoc distribution. I also add a comment on my archives. My conclusion is that there is something broken about the "archive re-signature".
There is a very good tutorial for solving that problem on this website.
It says that this problem can occur when your Projects Bundle Identifier is different to the one you entered on the iTunes Connect Website.
I think xcode 5 uses "release" instead of "distribution" that you may created yourself.
If all above didn't work (in my case after couple of days no luck trying everything) I have only one Mac application. BE CAREFULL WITH REVOKE!
1) Revoke by hand all "Mac App Distribution" & "Mac Installer Distribution"
2) Clean relevant certificates and open-keys in Keychain (Warning: export before delete)
3) Restart Xcode
4) Go to (in Safari) developer.apple.com -> certificates etc.
5) Create CertificateSigningRequest.certSigningRequest in Keychain->Certificate assistant
6) Create by hand on developer.apple.com both "Mac App Distribution" & "Mac Installer Distribution" with your *.certSigningRequest
7) Provisioning Profiles -> Distribution -> create/fix custom provision for AppStore (I'm specially named it as "Mac provision profile for AppStore"
8) Xcode -> Settings -> Account -> Your account -> Refresh
9) Xcode Clean -> Archive -> Validate
I have been struggling with similar problem (I was building for Ad-Hoc distribution). Only thing that has changed since last successful deploy, was adding two devices to provisioning profile.
After double- and triple- checking all build settings, I regenerated provisioning profile (without changing anything), re-downloaded and it worked fine.
So note to self: if there is no logic explanation, you can always try good old IT voodoo.
I also recommend iPhone Configuration Utility, which despite its name, is useful for checking what provisioning profiles you have on computer.
ERROR ITMS-9000: “This bundle is invalid. New apps and app updates submitted to the App Store must be built with public (GM) versions of XCode 5.1.1 or higher and iOS 7 SDK. Do not submit apps built with beta software.
If multiple developers are using the same member center account. One of them can't use a certificate created by others cause they used a certificate request created using their computers.
You need to use a certificate created by you (certificate request
created using your computer).
Alternative, told them to send you the Developer Profile. not sure of the name. to use a certificate created on another computer.
Code signing Entitlements occur because of your resource does not contain Entitlements file in resources,Just go to build setting and search code signing Entitlements delete entry for debug and release, build project again you will see there is no error. Cheers
I had the same problem, but nothing written here worked for me. However, I found a simple way that worked for me. Here's how to do it:
1) In your Project and your Target(s) build settings, choose "None" for all Provisioning profiles, and choose "Don't Code Sign" for all Code Signing Identities.
2) Now, choose your Target and go to build settings. In Code Signing Identity Release setting, choose "iOS Distribution" for "Any iOS SDK". And then, in Provisioning Profile Release setting, choose your distribution profile for "Any iOS SDK". After that your Code Signing Identity Release setting should automatically change to "iPhone Distribution".
3) Archive your build and validate. Now it should work fine. That's it!

iOS: specify code signing identity with .xcconfig file

I'm working on an iOS application within a team of several developers. We all have our developer certificates that belong to the same development provisioning profile. When I build the app we're working on in order to test it on a device, I need to specify explicitly the code signing identity to use. Otherwise, If I select the automatic profile selector, I get a code signing mismatch error when uploading the app to services like HockeyApp. Indeed, when I select the automatic profile selector, it seems to select the iOS Team Provisioning profile instead of the development provisioning profile specific to the app that I'm building.
When I was the only developer of this application, I fixed this issue by hardcoding the right code signing entity to use in the build settings. The problem is that I'm not the only developer on this project anymore. The problem with hardcoding my code signing identity in my project settings is that I have to remove it every time I commit a change to the project's settings, or if I don't my teammates will get errors when they sign the app saying that the code signing identity can't be found on their computer.
So what I'm trying to do is to setup a .xcconfig file where each of the team members would specify what code signing identity to use. This file would not be versioned so everyone could set their code signing identity explicitly without causing any issue for other developers within the same team.
I managed to include an .xcconfig file in my project and it is processed during the build phase. However, I haven't been able to write an .xcconfig file that solves the code signing entity issue. I tried to put the following line in my .xcconfig file:
CODE_SIGN_IDENTITY = iPhone Developer: Firstname Name (XXXXXXXXXX)
where Firstname Name (XXXXXXXXXX) is the result of copy/pasting the code signing identity I want to use from the build settings to the .xcconfig file. I later realized that all my code signing identities for all my development profiles (one for each application or bundle identifier) give the same result when I copy/paste them from the build settings to the .xcconfig file.
I was looking for a way to differentiate them, but I didn't manage to find one that works.
Do you have any idea of how I could solve this problem ?
I also tried using the [sdk=iphoneos*] modifier, with no success.
I would like to avoid using different build configurations because I feel that I would have to merge changes made to the main configuration to a new build configuration that would be made just for the purpose of using the right code signing identity. However, I'm not familiar with how build configurations work within XCode, so feel free to educate me on that if you think it could be a good solution.
Thank you!
Instead of selecting the CODE_SIGN_IDENTITY, which ultimately doesn't matter, you could instead specify the PROVISIONING_PROFILE and leave Xcode to sign it with whatever identity matches. This is what we do for our internal build system
Specify a profile with:
PROVISIONING_PROFILE=cb65516b-ee34-4334-95d6-6fba5f2df574
where the long hex number is the UUID of the profile. If you look inside a provisioning profile you'll find that most of it is ASCII, even though it's a binary file, and it has a section like this
UUID
395525c8-8407-4d30-abbd-b65907223eec
We have this working (so do others). Don't the include the part between the braces, just the name part in front of it. If you need to differentiate, I'd recommend to name your identities differently (e.g. by including a reference to the customer or project name you're using the identity for).
Just add this to xcconfig.*
CODE_SIGN_IDENTITY = iPhone Developer: Firstname Name (XXXXXXXXXX)
Try this for CODE_SIGN
Then go to "Build settings" => "Code signing" => "Provisioning profile" => "Left mouse button click" => Select "Other..." => enter "$(inherited)" => Enjoy!
Please tell me if something doesn't work for you. Hope it helps.

Resources