Multiple developers on same individual iTunes account - ios

I have an Apples Individual Developer account.
Now I have one more developer to assist me.
I have added him as my Team admin from iTunes Connect.
When he pulled the Xcode project, there is an error saying "No matching provisioning profiles found" in General > Identity.
Why cant he compile the project even though I have added him as a team admin?
Also can he submit the build to iTunes connect?
Image below clearly states that team admin can Create Apps and Submit Version
I have referred to couple of answers on SO, but most of them are outdated(for iOS 3 and above), so I was wondering if Apple has revised the policy in recent days.
I use Xcode 7.3 on OS X 10.11

On iTunesConnect manipulations only with app publishing.
What you might want, is to add him into your Team at developer.apple.com/membercenter.
Then developer via that site generates the Developer Certificate(s) and then creates Provision Profile via Xcode.

You might be getting this error due to missing provisioning profiles in your system. You can download the profiles linked to your account by doing the following steps:
Open XCode
Go to Preferences
Select your Apple ID. If not signed in, sign in to your individual Apple Developer Account
Select your Team from the right pane
Click View Details
Click Download All
Once all the profiles are downloaded, go to Build Settings -> Code Signing and choose the appropriate profiles for each.
In case you get an error again while building, do the following steps:
From your main machine (where you have been using your Developer account before), open Keychain Access
From the left pane, select login
Export the following to any location. It will be saved as a .p12 file. Give a password for them:
iPhone Developer Certificate
iPhone Distribution Certificate
Install these p12 files in your teammate's system.
You should be good to go now!

Related

Unable to set Signing certificate in XCode. Executable contains an invalid signature

I want to run my cordova iOS Application on my iOS Device for testing.
Following are my build settings:
Clicking Enable Development Signing sets the Team to None.
My build is successful. On installing, XCode shows the following error:
Does it require a developer account to run the Cordova iOS build on a device for testing? The Cordova Android version is already on Play Store.
How to set a Signing Certificate without a developer account? How to fix the invalid signature error. I haven't set any signature yet.
I am completely new to iOS.
Yes, you must have a developer account to get a signing certificate. The signing certificate pairs with your provisioning profile, which also requires a developer account to create. You need both to run on a physical device. Your device must also be registered with your account and included in your provisioning profile device list to be allowed to run the app, outside of the App Store environment.
Xcode handles much of this for you automatically, if you have a developer account set up under Xcode Preferences > Accounts > Apple IDs. On the right-hand side of that screen you have a list of "Teams" along with buttons that say "Download Manual Profiles" and "Manage Certificates..." Is anything listed in there?
Your screenshot shows a Team with your name, which should mean that you have a developer account already?
You also have a button in your screenshot that says "Enable Development Signing." Have you tried running that? Does it not take care of things automatically for you? "Automatically manage signing" enabled should be helping you get through these issues with simple clicks of those buttons.
Otherwise, you will need to go to the Developer portal and register a signing certificate manually. That's a process that many have written blogs and manuals about already. I don't think it is necessary to re-write what has been said by many others already. Here's a YouTube video that does a nice job of explaining things: https://youtu.be/OwXIJchrDdA

Your account does not have permission to create iOS distribution certificates

I want to upload my app to testflight. when I upload the app Xcode shows this error:
your account does not have permission to create ios distribution certificates
Anyone help me?
This seems to be a bug or poorly described feature in iTunes Connect & the Apple Developer portal.
I had a developer that joined my team, initially as a "member", but wasn't able to create certificates, even after giving him admin access. It turns out, that I believe we were only giving him admin access to Itunes connect, but not to the developer page.
The correct fix was to go to the developer portal, click the "People" tab (or go to this URL https://developer.apple.com/account/#/people/), remove his access, then use the Invite as Admins to add him to the account. He then had to go into Xcode and remove his developer account information, add it back in, and then he was finally able to upload builds to Testflight without this error.
This should be the user permission issue. Please note that only user with Team Agent role has permission to generate certificates for distribution of app outside the App Store. I believe, you are not in Team Agent role. Please double check your permissions.
You can even generate a Certificate Signing Request and send it to your Team Agent. Get back the created certificate from the Team Agent and use it to sign apps.
Based on your comment "Yes, we have a developer account for Team" I am guessing that what you have is an Enterprise Developer account. If you have a Enterprise DA you cannot upload to the apple store/test-flight. You will need to create a personal developer account for that. Enterprise accounts are only good for in house testing and not for external. That's why you are getting this error.
Using keychain, export valid certificate on a computer on which iOS distribution signing identity works. You need two files, one is public - <fileNamePublic>.pem file, and other is private - <fileNamePrivate>.p12 file.
Put those files in a folder on computer on which you need signing identity to work.
Open terminal and browse to the folder you've put them in.
First, type: security import <fileNamePrivate>.p12 -k ~/Library/Keychains/login.keychain
Then type: security import <fileNamePublic>.pem -k ~/Library/Keychains/login.keychain
Open XCode, go to XCode>preferences>accounts>view details and refresh the apple id you are using
You should have signing identities enabled.
Perhaps your iTunes Connect account does not have the correct role?
I was receiving similar error and also, I had a permission to create certificate with my account which has developer role. I tried all of the solutions but none of them worked for me. Therefore, I downloaded provisioning profile from developer account and I used that provisioning profile from manual signing when I was archiving to my build then error disappeared.
Every thing was good with my account, no permission changed as already it was same email id used to purchase the account.
I fixed this problem by removing the account from Xcode preferences and again added it. What i did was immediately added credentials in Xcode preferences right after purchasing the account. I should have to wait for Apple to process the order.
For anyone finding this now: Team Agent no longer exists. If your role is Admin or App Manager you can upload builds and create provisioning profiles, etc. Note that if you get this error when you upload, then ask for the correct permissions and it still doesn't work, quit Xcode and try again!
Perhaps your provisioning profile was expired and even after updating it from Apple's developer website, Xcode doesn't try to fetch the new one.
Here's how to solve it:
Xcode -> preferences -> accounts
Select your Apple ID, and on the right bottom pane select your team and click View Details
Under provisioning profile, find your expired profile, right click, and click Move to Trash
You should be able to sign and upload your app.
If you are getting the same error...Create the .ipa file and upload to https://www.diawi.com/
you will get an link, which you can share with your client.It's not a solution for your question but it will help you.

Invalid team ID in signature

We are working on an app, that was originally created by other developers. They added our account to iTunes Connect as Admin role and to Member Center as Admin too. We added that account to Xcode and we've chosen "Team" setting under Target to match the right team.
When we are trying to archive and upload new version, Xcode returns error:
No accounts with iTunes Connect access.
But if I try to log in to iTunes Connect, it works normally.
I tried uploading new version by exporting .ipa and uploading in via Application Loader. After unsuccessful upload, I get a mail like the following:
Invalid team ID in signature - The code signature in bundle 'com.example' at 'example.app' has a team identifier value that is different from your team identifier 'EXAMPLE'.
Under keychain certificates, there is iPhone Distribution Certificate with that team name. How to resolve this whole problem?
Under the target of your Xcode project in the main settings page (when you first click on the target) you will see a drop down called Team. You need to make sure you have the right team selected that goes with the proper bundle I'd
I am not sure if this question is still relevant.
So what you would normally need to do is:
Go to the developer portal, and in the Certificates, IDs and Profiles choose Certificates > Production. You should be able to download the Distribution certificate.
Go to the Provisioning Profiles > Distribution (same page, menu on the left) and choose and download and double click the provisioning profile for your app.
Now you should be able to choose this Distribution Certificate/Provisioning profile combo in xcode to build and sign your app.
We develop white labelled apps, so our account actually manages over 40 other apple dev accounts (since apple guidelines say that apps need to be submitted by content provider even when developed by 3rd party).
About the error you received: when we transfer app from our main apple dev account to respective apple account of the client, we do get the warning you mentioned as well. Yet even after receiving the warning, our apps get uploaded/approved. This happens because in past the app has been developed under a different team (and apple prefixes the team-id from dev portal to the bundle-id to finally identify apps on dev portal/appstore connect, it seems).
So what happens to you I think is that you dont have the distribution certificate/provisioning profile sorted out properly. Do you use just xcode, or a different tool to build/sign your app(s) - like Visual Studio for Mac? You would need to sort the provisioning combo there as well.
If you look to your keychain, in the "My Certificates" section you should see the team that invited you as admin to manage their apple account, and this entry should have a little arrow next to it, if you click it, you should also see that there is a private key associated to this certificate.
You might need to manually download all of the provisioning files in the xcode tho, in my experience double clicking the provisioning profile file downloaded from portal sometimes doesnt do the trick. If its the same for you, go to the xcode > Preferences > Account > click on your account in xcode, and on the right you should see all the teams that you are part of. Click on the team and click on "Download manual profiles".
If you use Visual Studio for Mac, you also need to add your account in the Visual Studio for Mac > Preferences > Publishing > Apple Developer Accounts. If this is empty, just add your Apple dev account, login, and you will also see a list of teams you are part of. If it syncs well, you can actually just leave the certificate/provisioning combo on Automatic in Visual Studio, and it will manage it for you.

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.

How to build an iOS binary without setting an Apple Developer account and team?

I'm using Xcode 6.3.2, and I'd like to let another people to build and create the .ipa files of my projects, but I don't want neither to expose my Apple Developer account information, nor create users for them in my team... is that possible? Either by using Xcode, either by commands line.
Thanks in advance
EDIT: The goal is to prevent those external people from being able to submit apps to the App Store by means of my Apple Developer account and from being able to see the other apps managed in the account.
EDIT2: Does providing the distribution certificate to external people make possible to them to submit binaries to the App Store?
After reading your edits, I think I understand more clearly what you are trying to do. Basically, you will simply need to provide the other members of your team with the following:
The private key used to generate your app store distribution
certificate.
The distribution certificate
The app store distribution
provisioning profile
This will allow those team members to work on, and build the app for the app store. Without your Apple developer ID password, they will not be able to log into iTunes Connect to see the other apps you have. While they will be able to build the app for app store distribution, you (as the only one with the apple ID password) will have to be the one to submit the compiled app to the store.
So basically, your development team will create the apps. When you're ready for release, they can do an "Archive" in Xcode to create the .app that has been signed for the app store (using the provisioning profile and signing identity that you provided them in the three files I mention above. They will zip up the .app and the .dSym files into a .zip and send it to you. You will then log into iTunes Connect and set upt the app to be ready for the new binary, and then use the Application loader to upload the .zip to apple for review. Once you have gotten a successful review, you will again log into iTunes Connect to release the app. So at no point will the developers have access to submit apps or see other apps you have in the store.
Also, the development team will not need the provisioning profile, cert, and key until they need to build for the app store. During the development phase, there is no problem with them using their own developer accounts to build and test the app.
One additional thing to note is that Apple is changing the roles that are available in iTunes connect. You may want to review those new roles to see if some combination of those roles my work for your team setup.
From http://9to5mac.com/2015/06/12/wwdc-itunes-connect-testflight-limits-account-switching/
After several apps are added to an account by its admin, developers
can now assign user roles to individuals on their team— app manager,
developer, or marketer— with each allowing varying access to iTunes
Connect features. App managers, for example, will be able to create
users, assign user roles, change pricing, and submit apps for review.
Marketers will get access to updating store metadata, uploading promo
material, and requesting promo codes. Users assigned the developer
role will be able to upload binaries, and view crash logs and store
metadata.
Apple recently introduced Free-provisional-profile and/or free-developer-certificate support.
But it's limited (see below note).
To utilise that follow below steps suggested by Apple,
In Xcode, add your Apple ID to Accounts preferences, described in Adding Your Apple ID Account in Xcode.
In the project navigator, select the project and your target to
display the project editor.
Click General and choose your name fromthe Team pop-up menu.
Connect the device to your Mac and choose your device from the Scheme toolbar menu.
Below the Team pop-up menu, click Fix Issue.
Xcode creates a free provisioning profile for you and the warning text under the Team pop-up menu disappears.
Click the Run button.
Note that said support is limited, for example, the capability to sell things with "Apple Pay" would not even build with a free-certificate.
Yes, there are several ways to solve your problem.
You can create .ipa file with you provisioning profile and give them the file, they can you use application called "Application Loader", they can use this application to upload the .ipa, this should resign your application with their provisioning profile. I did not try this but it should work.
When you create an archive of you application, it will be listed in "Organizer", go to that location, and give them that .app file alone. Then they can use any third party application(can be downloaded from Mac Appstore) to resign the application with their profile. In this case, you are completely hiding your information. They can even change the application icon, default image.. etc during the resigning process.
When you build your application in release mode an .app file is created, this is unsigned binary. You can search for .app file in your Xcode project itself. Just find the location, and give them that .app file alone. Then they can use any third party application(can be downloaded from Mac Appstore) to resign the application with their profile. In this case, you are completely hiding your information. They can even change the application icon, default image.. etc during the resigning process.
Hope this helps.
No, There is no way to compile a .ipa without a provisioning profile (device compile, not simulator compile). To do this, you would go XCode->{AppTarget}->Build Settings->Code Signing->Code Signing Identity, and set 'Don't code sign".
Trying to compile afterwards will fail with
CodeSign error: Code signing is required for product type
'Application' in SDK...
EDIT: The goal is to prevent those external people from being able to
submit apps to the App Store by means of my Apple Developer account
and from being able to see the other apps managed in the account.
You have two options:
Send them your Source code + XCode Project, and not the library.
Compile the code using "iOS Developer" Code Signing identity, and not "iOS Distribution" identity.
Anything signed with iOS Developer can never be sent to the AppStore.
Anything signed with iOS Distribution can never be run on a device
unless it is downloaded from the AppStore.
They can never see what you have for sale, nor publish anything unless they have your AppleID username and password

Resources