Best practice for uploading app to Appstore for Client - ios

im a developer and i have my own developer-account for IOS. I have a Prototype-App which i want to sell to my clients. All of my clients do not have a MAC and a own developer account. Im searching for the easiest way for me and for my clients for uploading the app on their dev-accounts.
So i thought, that i let my customer open a own developer-account (99$/year) and send me only the login-data. Then i can prepare and upload the app on their account. Is this possible? Can i upload from my MAC (XCode) to a different Dev-Account?

The best way to accomplish what you want is for the client to setup their own dev account but instead of giving you their credentials, they should add you as a collaborator. Given that you will be handling everything for them, they may as well make you an admin (although a technical role may work as well).
One of the annoying thing with iTunesConnect is that a login can only be attached to one account.
If you already have an iTunes Connect account for distributing another
media type besides apps (music, TV, movies, or books) or for
participating in the Volume Purchase Program, the same Apple ID cannot
be used to manage apps. When you enroll in the iOS Developer Program
or Mac Developer Program, you'll need to use a different Apple ID. (source)
So you will need to create a new login for yourself. I do this with clients by creating custom email address for each one. Say my client is Odyssey, I would create an Apple account "odyseey#mydomain.com" and have them add that account into their iTunesConnect.
Thanks to Vijayts in the comments: You can actually append +something to your email address to reuse the same one with a different login id (so same email, different login basically). So if my normal ID is firo#mydomain.com I can use firo+odyseey#mydomain.com.
This gives the client the most control, while allowing you to accomplish everything you need.

Related

How does one share an existing iOS provisioning profile (or app due for submission)?

A colleague has a completed iPhone app ready for submission to the App Store. In his iTunesConnect/Apple Dev account/XCode/etc. he has his own profiles and certifs all set up. Now we would like to pass responsibility for the submission to me. I have my own iTunesConnect/Apple Dev account/XCode/etc. as you might imagine, associated with my own business.
I'll be making the first submission, but ideally we'd like to both be able to make them for future releases, and I'm imagining it would be best to use his rather my than my Apple Dev account, as otherwise the app will be associated with my company rather than his, and he built the app for his client.
Yes? No? What is the best way ahead please?
Thank you for reading.
If these are individual Apple Developer enrollments, then there is no team. You can only have developer teams with corporate/company Apple Developer enrollments/accounts. With individual accounts, only the enrolled agent (using their own developer account login) can download their certificates and provisions and submit apps under their accounts name.
If you do let the other developer use or log into your Mac to make an app submission using their own developer account, you might want to set up a separate User account on your Mac for that purpose, in order not to mix together the keychain certificates and logins of two accounts, which can make a mess.
If you want the app in the App store to be listed under the end clients name (recommended), and that client is a corporation, not an individual, then you might want to get added to the client's (enrolled in Apple's Developer program as a company) team.

Possible to rename iOS App before uploading?

I'm about to upload my app to AdHoc for Beta Testing however the Xcode project is named "MyApp" (not the actual name of the app) but I want to upload it to the app store as "MyLive". The bundle identifier is also com.myproject.MyApp but I would like to rename it if possible to something like com.mycompany.MyLive.
At the moment this is just a personal app attatched to my personal App ID but I'd like to future proof it as best as I can so it doesnt cause me any problems down the line.
As I've enrolled in the Apple Dev program using my personal Apple ID the only team I can choose is my name. However, is it possible to create a new team so that it seems like a company based around the app?
Lastly, if I upload it connected to my personal Apple ID how much personal information will be publicly visible? Is it possible to hide my email address?
EDIT: Is it possible to transfer an App from on Apple Developer account to another? Say when my current membership runs out and I set one up in the company name would I be able to transfer ownership?
Once you've created an app in iTunes Connect the bundle identifier can never be changed. If you have created it as com.myproject.MyApp then it's stuck as such. However, if this is your first upload, there's really no loss to create a different iTunes app with the bundle id of com.mycompany.MyLive.
None of that really matters though as no one will ever see this except you and anyone you've allowed on to your account. Just keep it simple.
You can rename your iTunes app name when your app is in editable state. i.e. If you've already submitted version 1.0 of the app with an iTunes app name of 'MyApp', you cannot change it for that version. But you can setup a version 1.1 and change the name before it's submitted.
It's not possible to create new 'teams'. A team is basically a developer account. You can be invited to join other teams via the owner of those accounts. In the future you can convert your personal account to a business account. It requires a bit of legal paperwork but is not hard.
The only publicly available information is what you've added when creating your iTunes Connect app. You have to add an email under review contact info, this is only used by Apple to reach you in case of questions with your app. You are also required to provide a support URL so your customers can reach you.
Everything you wanted to know about what goes on iTunes:
https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Appendices/Properties.html
Google's answer for ability to transfer apps:
https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/TransferringAndDeletingApps.html

Transfer App option not available iTunes Connect

I have created a app long time ago on my iTunes account and now i would like transfer it on different iTunes account. After googling i found transfer app is available at under App information > Additional information > Transfer App like here But i am unable to find Transfer app option on my account like here. I have already read Criteria for Transferring an App. Please let me know what can i do.
Yes , Here is your solution
When you are a member under an organisation you can't able to see that option in your appstore account
Only the admin will have that access and can able to see transfer app option.
Get those admin credentials to transfer the app.
It worked for me
Only the person who has role "Admin, Account holder" can transfer app to another account.
Other admins cannot transfer app to another account and they cannot see Transfer app option under Additional information
One possible reason listed in App Transfer Criteria that I don't see mentioned in other answers is this:
The App must have had at least one version that has been released to the App Store.
Make sure that you had at least one actual version published on the App Store. Published TestFlight builds don't count.

Connecting Apple ID to multiple iTunes Connect

I'm not sure if this question already exists, since I'm not exactly sure what to search for.
So here's the deal:
I have an Apple Dev account linked to the email ash#ashmenon.com. I've worked on an app in the member center, and I've also got an iTunes Connect account connected to this same Apple ID.
Right now I'm working on an app (Super Marvel App) as part of a team (let's call it Team Marvel) My Apple ID has been added to that team, as an 'Admin'. So when I go into the member center, the MC asks me which organisation I want to choose (my own, or Team Marvel).
However, the agent for this team was unable to add my Apple ID in iTunes Connect, as it belongs to an existing dev account. So what we did was to add a plus-suffixed version of my email, in this case 'ash+marvel#ashmenon.com'.
Problem is, I'm the developer for the team, not the agent (he's non-tech), so any archiving, submission, validation, and exporting comes from my XCode. But when I try and submit/validate my archived app, it tells me that my organization does not have permission to submit this application. (not sure if this is important, but the name of the organisation it displays during this error is not the same as the name of the development team that I selected earlier in the submission process.
I tried adding the ash+marvel#ashmenon.com address as one of the Apple ID accounts in XCode, but it tells me 'Error Fetching Developer Info'. I presume this is because the account in question is not an actual Apple Dev account.
For now I've worked around the process by submitting via Application Loader, but it feels like I'm hacking the system somewhat.
QUESTION 1:
Is there a proper way of doing this that I'm missing out? Gut instinct tells me that this hack-esque workaround is going to bite me in the backend later on.
QUESTION 2:
Is the Team Marvel agent required to do all iTunes Connect submissions himself? This seems like a very counter-intuitive approach considering this is Apple we're talking about.
Any assistance is much appreciated. Stay awesome, you guys.
NOTE:
Names of applications and teams have been changed for privacy reasons, and because Marvel is infinitely cooler than anything else.
UPDATE: Do not use this approach any more. Apple has finally fixed iTunes Connect, Developer Center and Xcode to properly handle one Apple ID for multiple organizations. Add the same Apple ID to as many organizations in both systems as you need.
I believe there is finally a way to make this work while preserving your sanity in Xcode 6.3.2.
The main trick is to make sure that your iTunes Connect account and Member Center account Apple id's are the same for any particular organization. It looks like Xcode assumes that and tries to use the Member Center Apple ID to access iTunes Connect.
So, as mentioned in the question, make sure and use a "+folder" style of email address to avoid creating and managing a whole bunch of real email accounts. But here's the crucial part - add that "+folder" style account to Member Center (i.e. invite the "+folder" account) for that organization and remove your plain Apple ID if you were using it there.
I.e. don't use Member Center's ability to associate multiple organizations with one account. That will just confuse Xcode if you also need to access multiple iTunes Connect accounts. Use one "+folder" account for each organization you are working with and add that Apple ID to both iTunes Connect and Member Center.
As far as I know, that's the way it is. iTunes Connect is not linked to Member center, and unlike Member center, it cannot handle multiple accounts per email. I'm on the same boat as you. Always need to save an IPA file and submit from Application Loader. Wish we could select the proper iTunes Connect account

How can I limit ios app purchasers to one account?

I want to create a social networking ios app which costs money, and when the user buys it they are allowed to create only one account on the app. So the purchase is associated with the account somehow... or the app has a specific id on each device its bought on... would I need to use gamecenter somehow...
How would I approach something like this?
Any help would be greatly appreciated.
First of all, more than one person may use the device (think a family with an iPad) so what your doing is inherently a bad idea.
That said, you can use an in-app purchase to let them buy account access - check with the server first to make sure a desired username is available, then let them use an in-app purchase to buy access, and on your server tie that purchase ID to the user name. Even if they deleted the app and tried to re-purchase (while logged into the same iTunes store account) it would see a purchase had been made and essentially be the same user. It even does kind of work with multiple users as they could switch iTunes accounts (though that is a pain).
I would also suggest trying to tie it to the users iCloud account in some way, which is easier for users to switch between on an device (a family might use one iTunes account but have separate iCloud accounts).
If you don't want to give Apple 30% of the registration fee, your only option is to have users sign up on the web and pay there, then have a login they can use in your app. Then it's a matter of trying to prevent duplicate logins on you server, although as a last point of thought, I can't remember a business that succeeded by refusing people's money.
You could generate an unique id on the phone, store it in the keychain, and use that to communicate with the server.
Since you are creating your own account management system, just save the user information once they do the account creation bit and never show the option again. Because developers no longer have access to the device id, you may have problems identifying an existing user if they delete and re-install the app, but I am not sure that there is a solution to that problem.
Edit: As a commenter to this question mentioned, you can save things to the keychain. Check out this link for a good lib for modifying the keychain.

Resources