Sign app in XCode with another developer account - ios

I have a client that doesn't want my apple developer account to interfere with his application. So, can I use his developer account(without the credentials) to sign and test an application?
I searched and I found myself lost with some questions over a possibility that I'm not sure it works. The thing I found was him exporting the developer profile via XCode, sending me the developer profile file and me importing that into my XCode.
What I did not understand, however, was:
will this thing work?
will I need his account id and password for importing this, afterwards? (because this would be a problem)
is it required for him to generate this through XCode or is there any alternative?
can we both use this after he exports the file and I import it? is he able to revoke me after this is finished?
Edit:
Is there any other way to acheive that? Maybe any third party application?

It is very easy :
Get the p12 of his certificate : he could export from his keychain
then install this certificate and adhoc provisioning profile in you system. You can use this for taking build .

There is no way to build apps that appear to be signed by him without having his credentials. You only need this if you will be the one producing the release builds. For simple development you can use your own account.
There are various ways you could split up the work if he is capable of producing a build himself or running command line tools to re-sign the app you build (I haven't tried this myself). In my experience the company will have an account shared among developers permitted to produce and submit apps rather than individuals.
Not the way you hope it will work. When you import the profile you will be asked for a password.
You need his password to use his private key.
The developer profile is a convenient way to do it. He can send you the distribution certificate and a separate p12 file containing his private key along with his password for that key. You will import it into your keychain by double clicking the files and entering his password. Or he can give you his apple ID and password, and you can add that account in your Xcode preferences. This will give you access to the provisioning and distribution profiles.
You can both use the credentials at the same time. No, it is not revocable. Once you have his credentials it will be up to you to remove the account information. You will have his private key in your keychain.

Not sure if I understand your question correctly. Hope my answer helps you.
Your client can add you as a team member in his developer program. He can limit the access by choosing the appropriate role as mentioned in the below link.
https://developer.apple.com/programs/roles/index.php
You can then login with your credentials and create certificates/profiles/add devices etc but you can be restricted to access his iTunes Connect.

Related

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.

Importing Developer Profile .developerprofile doesn't work. Still require password

I imported the Developer Profile .developerprofile to Xcode. But it still requires password for that account when I want to export ipa or Upload to App Store.
It happens for all accounts that I imported to the Xcode.
I tried to ask my client for export new .developerprofile file and it still can't be fixed.
Someday before, everything worked properly. I searched for hours but still stuck.
With the image below, the accounts with the mark (~) stop working. The middle account can work after I enter the password.
Please help me.
First, I'd remove and add those profiles once again. You can delete profile by tapping minus sign at the bottom of Accounts window.
Second - check Keychain Access and see if related accounts are included in your Keychain and all related Provisioning Profiles are not marked as red.
Finally, do remember that to upload application to iTunesConnect you need access to iTunesConnect account which may not be the same as Developer Program account - this is really common if you are handling several clients on one Developer Program account (meaning, using only one Apple ID) and use different iTunesConnect accounts - than you'll need to sign with them too using Accounts section in Xcode Preferences.
Yes, it requires password i.e., your local system password. Whenever you export or upload it asks for system Password.
Allow keychain access here so that it store the password.
In the above account you just give apple id and apple password, no description is needed.
Finally, I figured out the problem.
My customer changed the password of the account that I imported. That why the Xcode ask the password every time I want to use.
To solve this, I requested my customer export for the new .developerprofile (match/have the new password)
For more information:
With Code Signing Identity is "Developer", just need the developer .p12 file. I can build and upload to App Store for Testflight.
With Code Signing Identity is "Distribution", I have to use(import) .developerprofile.

iOS Second Developer Certificate

My situation is that I have just hired a second developer to work remotely. He doesn't have a developer account and would like to send me his progress.
At the moment he is using my Apple Developer account with a temporary password but this is not ideal, is there a way that he can have a certificate and I can reset my password?
My Apple developer account is set up as individual by the way
Thanks
If you are not going to extensively adding and removing the devices then the easiest way is to add all the devices, create dev and distribution profiles and certificate download all in your Xcode then simply export and send to him and he can simply import and use the local signing assists option not the online account .
You can export the certificate and the private key for the certificate in the Keychain Access application. You could then send the developer the key, certificate, and the provisioning profile to the other developer, who could then build the app with your provisioning profiles, without direct access to your developer account.
This will be a bit of a hassle if the other developer needs to do a lot of device maintenance on the developer profile (adding / removing devices). If that's not the case, I would simply send him the necessary files and reset your password to prevent having to share full access to the account.

How can I create a correctly signed distribution App Store build for a client without Xcode

I need to create a distribution App Store build for a client who doesn't have Xcode. Is there a way to do this without the client needing to give me credentials to their Apple Developer account?
I do see other questions that are similar,but a bit different, as they want the client to be able to re-sign on their end. Also, the questions are all a year or more older, and I'm hoping that this likely common situation has a simpler solution.
If all you want to be able to do is resign the code with their signing certificate then you can use a tool called iResign. It would let you create a distribution build with one cert and then have it resigned with a different cert. it's perfect for working with clients or providers who don't want to share credentials.
You want to create a distribution build created with the client's credentials? Not possible unless the client gives you his credentials or sets you up with your own credentials as a member of his time.
Probably the cleanest way to do this is for the client to set you up as a team member on his team, issue you a certificate and a distribution provisioning profile, and then you build with that. I don't remember for sure if you have to be an admin to create a distribution build or not. I don't think so, but I'd have to check.
Check out Testflight. You just need the UDIDs of any devices that the client may test on. The app is then e-mailed out and the client can open and install.

Sharing Certificate with 3rd Party Developer

We have had a number of apps built by a 3rd party developer. I cannot remember how this was done in the past, but they have just updated 2 of our apps to work correctly with iOS 5.x
The agreement is that they will build and sign the files ready for us to upload to iTunes. We cannot build the code as the agreement doesn't include the source.
I have sent them the Distribution Provisioning Profile (.mobileprovision) but they have asked for the "Certificate for Keychain access"
Perhaps I am being overly cautious, but am I right in thinking I need to export my Developer Certificate as a .cer file and email that to them? We do trust the company, but is this the correct way to do things? Is it allowed by Apple?
The 3rd party have no access to our accounts (developer centre / iTunes connect) and we have no access to the source code.
Thank you
If they're going to build things as you, they'll need your certificate and private key as well as the provisioning profile. I don't think there's any way round that if they're going to do the building and code-signing.
I think it's a fairly typical way to do things, in a situation where the client has the dev account but the developer owns the source.
Even if the development company did have access to your iTunes account, you'd still need to send them the private key that your certificate was created with.
Not tried it myself, but seems like there is a way to re-sign the binary (IPA file). Check this link It uses a utility called iReSign

Resources