Uploading app to client account in app store - ios

This is my first time trying to upload app to app store, so I am completely lost. I have searched all over the web about the issue I am having, but could not find how to fix the issue.
Here is the problem:
I have developed an updated version for the existing iPhone app for client. Original version of app is already in app store for long time. Client wants me to upload new version of the app to their account in app store as "prerelease" for testing. They gave me their store account (admin role) username and password to log in. I added the account in Xcode and configured build settings to their team. But, after building the archive, when I click the "Validate" button and select their team, I am getting an error popup with the message "Your account already has a valid iOS Distribution certificate". I can't post images here, so here is snapshot image of the popup):
http://imgur.com/yLL5K1k
Apple troubleshooting documentation (documentation link here) shows that they should export developer profile and give me to import on my Mac. However, client say they don't have Mac and no Xcode, so they can't do it themselves. Apple documentation is mentioning another option - “Revoke and Request”, but I can't see that option. Also, if "revoke" is performed, will that affect client's application (more than 20 apps in app store)?
I have downloaded all of their certificates and profiles from Member center, imported to keychain, added account to Xcode, configured Xcode, but nothing helped.
Does anyone know what can I do, or ask to client, so that I can upload app to their app store account?
Thank you!

You must have downloaded the Distribution certificate from the account. That alone is not sufficient. You must get the private key from the client or developer who has created the certificate first or uploaded the application.

Log in to developer.apple.com portal, using the required credentials.
Click on "Manage your certificates, App IDs, devices, and provisioning profiles." under Certificates, Identifiers & Profiles
Then click on "Certificates"
On the new page Click on "+" button at right upper corner.
Now on this page select "App Store and Ad Hoc" under Production.
Then follow the instructions related to CSR file given on new page.
Note: Create new certificates with unique names so that you won't download old certificates to your mac, mistakenly.
For more info Distributing iOS Apps With iTunes Connect

Related

App Store Connect Operation Error: Invalid provisioning profile... Please use provisioning profile associated with team ID "XX..XX"

I developed an app for a friend of mine. We published it to the App store from his laptop and his account. We also published the first update through his account as well.
Currently, we need to push a third update, but I am physically away from him and I have to do it from my account and laptop. He made me an "admin" on his developer account team.
Using my developer account, I created new certificates and new provisioning profiles (as his certificates and provisioning profiles expired). The app deploys normally when I test it on my iPhone device.
When I try to upload the app to the App Store, I receive the following error:
My team ID is (59..DU). My friend's team ID where we published the app and pushed the first update is (JB..22) (The one the error is showing).
I've been trying for almost two days. I tried everything I could, my problem is mainly the team associated with the provisioning profile. The code signing works fine (no errors) whether it's manual or automatic. I also signed out then signed in for my developer account on xcode. I also verified the bundle ID. Nothing seemed to work.
How can I upload the app using my friend's team ID (JB..22) from my developer account? Keeping in mind that I cannot use his credentials and I'm physically away from him to do this from his laptop.
I would appreciate any help in this matter.
Please verify if it's App Store Distribution profile or not.
If Yes, then try to login to Xcode with your Apple Id which has access to iTunes Connect or App Store Connect.
While validating the archive file please choose the same App Store Distribution profile.

Xcode does not automatically create app id on developer portal

As indicated in the title, Xcode is not being able to automatically create app Id and provisioning profile for an app i’m developing. I have checked the “Automatically manage signing” option but on the developer portal i can’t see any app id or provisioning profile matching the provided bundle identifier.
The problem arises only if I select, in the “team” selection, my developer account . For example, by using my enterprise account, the “waiting to repair” message is shown in Xcode and i can see the new app id created in the enterprise account portal.
If I change the bundle identifier and I select again my developer account, nothing happens, no errors and no warnings. I’m able to install the application on a device and all seems to be good. However, in my developer portal I still do not see the app id and provisioning profile so i can’t send the application to iTunes connect in order to submit to the Apple store.
Moreover, trying with other apps, all is ok even using my developer account.
I searched on line but i can’t be able to find a similar problem, are there any particular settings that are preventing the automatic Xcode app id creation to work for my app?
EDIT
it seems it’s not a problem related to the particular app. In fact I tried to create a new application fromo scratch and i have the same problem. I still do not have the problem on old apps (already uploaded on itunes connect) but i have the problem on all the newly created apps. Is that a problem with my developer certificate?
EDIT 2
I noticed that for all the newly created applications the App ID is set to: " * " (see image below). In my old apps the App ID and iOS Team Provisioning Profile are not equals to " * ". I have also deleted the wildcard id from my developer portal but the problem still remain.
I had a similar problem and i solved with a workaround. I have enabled push notifications in the "capabilities" tab (i.e, adding them to the entitlements), in this way the app id and provisioning profile have been correctly generated on the developer portal. Later, I have disabled push notifications (not needed in my project).
It's only a workaround, hope it helps
Somewhat related: I played around with Apples provisioning profiles in a desperate attempt of trying to wrap my head around their signing nightmare. In the process I deleted all the app ids from apple.developer that Xcode had automatically generated.
Afterwards I couldn't get Xcode to regenerate the app ids and I didn't wanted to manually create them, so what I had to do was to delete the automatically generated provisioning profiles from ~/Library/MobileDevice/Provisioning Profiles/.

Export .ipa in XCode 7.2 with external .p12 and .mobileprivision

Basically, I want to do exactly what is already stated in this question – just in XCode 7.2.
The setup: I am developing an iOS app (using Ionic) for a client and they want to publish it to app store in their name under their account. They however don't want to give me their account login and details. I have received a distribution certificate and a provisioning profile in stead.
I have installed the .p12 distribution certificate and have received a .mobileprovision profile for App Store Distribution using this certificate. I am however completely unable to select this provisioning profile anywhere.
My only choice in the export of the archive happens when XCode asks me which developer account I want to archive with. And here I can only choose my own account (of course). That's obviously not what I want though.
"Once" (in XCode 5, according the linked question) I should have been able to select the external provisioning profile under "Code Signing", but this doesn't seem to exist anymore.
Can this be done without getting their account details? I know that I don't need to know their password, they can just export it to me. Right?
I don't think you can do exactly what you are saying without code signing it with their account (which you don't have access to). I see two possible solutions for you to achieve your goal:
Send them the Xcode project and explain to them how to sign in to Xcode, archive the app and send it up to the store
Upload the app to your personal store account and then transfer it to their account. See this link for details on how to do that: https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/TransferringAndDeletingApps.html

How would I "Upload to App Store" to a client's iTunes connect?

I have created an app for a client, and instead of uploading to my iTunes connect account, I want to upload it to HIS (my client has a developer account, etc.). After I archive the project in Xcode and press the "Upload to App Store..." button, I am prompted the following message:
To submit to the iOS App Store, select a Development Team to use for provisioning:
And then naturally my own name is selected. When I press the "View Accounts..." button, I can see a "+" button to add an Apple ID. I am guessing I would add my client's Apple ID? And then his name will show under Development Teams and I select his name?
Someone please help me understand how to submit to someone else's iTunes connect account. Thank you.
There are two things to need to get:
Your client's private key (.p12 exported from keychain) for his distribution certification, you need it because App Store distribution cert can only have one per bundle identifier. Click here for instructions.
Your admin access to his developer program, this enables you the ability to upload archives, you will need sign in this account in XCode. Ask your client to send you an invitation. Click here for instructions. Do a Download All in Xcode preference after this step.
Then you can can submit again it should be all set.
For the developer program your client should invite you as an admin/developer using your main developer id(you don't need a new apple id for the dev. program i.e. you can switch teams).
You have to accept the invite
Login in the apple developer's website and switch to your client's team and create the certificates and provisioning profiles you need for the app.
Open X-Code preferences and download all the provisioning profiles you need.
In your app settings change to the distribution profile of your client(the one you just downloaded in the x-code preferences).
Create a new archive of your app in Xcode. Then follow step (7 and 8) or step (9 - added 29/09/2016)
When the organizer opens up after the archive is ready, highlight it and press export, then select - "Save for iOS App Store Development". When the export actions are ready save the .ipa file in location of your choice in your computer.
After all this is done, open up Application Loader, it is a tool which comes with x-code. Sign in with your apple Id and upload the .ipa file you created earlier.
---------------- Added 29/09/2016 ----------------
Another way to upload the app is from the organiser press Upload to App Store(blue button on the top right) while the archived build is highlighted. Select your client name from the dropdown in the dialog window press upload and wait until you see green tick
------------------------****-----------------------------
All previous steps assume that an entry for the app you are developing is created in your client's iTunes Connect and their apple developer account.
Finally log in to iTunes connect and do all the necessary processes to upload the app in the store.
Added/Edited on 29/09/2016: On iTunes Connect - in order to create entry for the app and upload it on their behalf, your client should invite you as an admin with your apple id and you have to accept it. Now you can be present on as many accounts as you are invited so very nice of Apple that they have updated this, saving a lot of time and mess. Change accounts from the dropdown in the top right corner when you log in.
I hope that helps.
You will need to have a developer account on the developer account you post to iTunes from. They will have to give you permission to access the account. I don't believe you can upload outside of Xcode anymore.
You've basically got it right. You need to add your client's information into your Xcode and then sign and provision the app as your client.
First, you tell Xcode that you want to add a new account:
Then, you sign in as your client's credentials:
At this point, you may need to download your client's signing certificates and provisioning profiles if Xcode doesn't do it automatically:
Then, just select the signing identity of your client and upload your app through either Xcode or Application Loader.

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