I was approached to build an iOS app for a company. What would be the best way to go about this when developing and managing the project?
Would I publish this under my developer profile?
Should they create their own developer profile and have them give me the credentials?
Should we get a developer account and be members of a team?
Yes!! Client needs to create their own Apple Developer Account for current and future applications.
They needs to have paid account to publish App on store. Meanwhile either they can add you as developer or share the original credentials with your so you can sign the application with development and distribution certificates for Notification and publish.
It's a one time JOB, but trust me best option for You and your Client as well.
Here is your start.
id go with option 2 .... definitely not 1 so that they 'own' the final outcome and also you want to keep your account free of external dependencies
There are three ways you can go about release an app for client:
Release the app on your account and have a written agreement between yourself and the client to forward profits from the app to the client.
Ask them to give your Apple ID access to their account so you can upload it to their account (they shouldn't really give you their credentials for security reasons.
Upload the app to your account and once its gone through the review process you can then transfer ownership of the app from your account to theirs. (Documentation here)
Related
I have created an app for my company. To use the application, you need to log in to the account that We ourselves create for each specific employee, registration of new accounts in the application is not available now and will not be available in the future, since only We can create new accounts for new employees and delete old accounts on our server .
Can such an application be published in the App Store, given the new requirements of Apple?
Is there any way to avoid this? Maybe if our application is unlisted, then it will be allowed to be published without explicitly registering new accounts?
We tried to submit our app for review and provided a demo account, but we were denied publishing due to implicit registration in the app.
As I know, you can create test account from your backend and provide this account authorisation info to the apple review team, so they can authorise and test your application
It is not the lack of user registration that is causing your app rejection.
For an App to be made available in the App Store it needs to be applicable to a broad audience. It sounds like your app is only for a very limited set of users; employees of your company.
For these types of apps you can use custom app distribution or unlisted app distribution.
Custom app distribution works well when an app needs to be made available to one or more organisations who manage their devices. (You can use it with unmanaged devices, but distribution is more complex).
In your case, it sounds like an unlisted app would be the best approach.
In both cases you still go through app review and will need to provide a demo login.
A third possible approach is to use an Enterprise developer program. Due to abuse in the past, Apple discourages these now that custom and unlisted app distribution is available. Enterprise programs are more expensive and are not granted to smaller companies.
Questions:
What is the correct procedure here?
Do both the developer and account-holder need paid Apple Developer accounts?
(As said in blow context, My Client already has one, do I need a paid account as well?)
How will I ever be able to deploy the app if my customer does not have a business account?
Context:
I'm trying to build my first iOS app with Expo.
I tried to run expo build:ios and got You have no team associated with your Apple account, cannot proceed.
I have an unpaid Apple ID
My customer created a paid developer account of type 'individual'.
He added me to his team and gave me the 'Admin' role.
The checkbox to give me access to certificates was grayed out. Apparently (according to Stack Overflow) because his account is of type 'individual'
I know I am part of a team because I can log in to App Store Connect and manage everything in my customer's account (except certificates).
Expo output:
reto#Retos-Mac-mini test1 % expo build:ios
✔ Choose the build type you would like: › archive
Checking if there is a build in progress...
Accessing credentials for ****** in project test1
✔ Do you have access to the Apple account that will be used for submitting this app to the App Store? … yes
› Log in to your Apple Developer account to continue
✔ Apple ID: … ******
› Restoring session ******
› Session expired Local session
› Using password for ****** from your local Keychain
Learn more: https://docs.expo.io/distribution/security#keychain
✔ Logged in New session
Authentication with Apple Developer Portal failed!
You have no team associated with your Apple account, cannot proceed.
(Do you have a paid Apple Developer account?)
Error: You have no team associated with your Apple account, cannot proceed.
(Do you have a paid Apple Developer account?)
...
Outcome
Based on all the answers, I will:
not create another paid account
customer will change his Apple ID password and give me complete access to his Apple Developer account
use customer's Apple Developer account to run expo-cli build:ios and let expo handle all the certificate and profile generation (which I have never done before).
maybe export all the necessary certificates and keys so I can give back control of the Apple ID and still deploy in the future (hopefully)
Individual Apple developer accounts are ineligible of adding an additional member who has access to certificates, identifiers and provisioning profiles.
Choose one of below few options:
Tell your customer to generate and send you provisioning profile (source):
Provisioning Profiles can be shared without problems between developers. For them to be valid and usable, though, having both Public and Private keys is needed.
The Public key is stored in the Certificate whilst the Private has to be exported from the certificate's creator Keychain App.
Enroll your own Developer account -> build the app -> publish it -> transfer the app to his account (see requirements at: https://developer.apple.com/programs/enroll/).
Your customer can request to upgrade his membership to an organisation. This requires him to have:
A D-U-N-S® number
Which depending on the process, would take
from days to months to get.
Legal Entity Status
Legal Binding Authority
A Website
Login with your customers developer account in Xcode which would allow Xcode to automatically manage the certificates. (Requires from your client to trust you)
Customer can assign you as an account holder for small amount of time until app will be deployed to AppStore. (Also requires from your client to trust you enough).
What is the correct procedure here?
There are few options
your customer needs to be registered as an organization not an individual
your customer can generate credentials for you on apple developer portal and provide them to you as files
your customer can generate credentials by running expo-cli build:ios and authenticating with apple on their account.
Do I also need a paid account?
That wouldn't help, you would be able to build/publish that app under your name, but not as the customer.
Also, if you are working for a client you shouldn't do that on your expo account, instead ask them to create an expo organization and to add you there, or create it for them and provide them with access to that organization, it makes it easier to transfer ownership in the future. Alternatively you could use separate expo account for every client.
Am developing applications for my customers I want to publish multiple apps for multi customer but I want to share all apps under my account with single certificate or customers accounts but i want to use single certificate for it, in future I need to update all apps with same time. I don't know how its possible. Please give some ideas. Apple store.
You have to used the cerificate for the app which is confugird in an Apple developer account.
You can create a single (dev. or production) certificate from an apple developer account. And using that ceritificate you can create provisioning profiles to distribute or debug the app.
As per my understading of your problem, You will have different client account for different apps. So you can not merge things into one. As apple developer account are separate to each other. you can not club into one. So the app publish from a account can be manage from that account only.
What you can do is if the client is signed up as an organisation then you can invite yourself as a developer into that apple developer account. In that way you can have the access to your client's account.
I have a client with an apple developer account. Its brand new and we are both new to Apple.
He has paid to developer an iphone app.
The developer wants to publish the app directly to the store.
The client does not want to share login details for the account.
What options are there?
I am asking because I know on Google Play Developer console you could invite someone to manage your account (or give them publishing priviledges) by inviting them using their gmail email via the console.
Easiest solution. Tell your client to change his password and give you the new password. Publish the app on iTunes, tell your client to change his password back. If he doesn't trust you enough to give you a half-hour access to his account, why on earth does he trust you to write the app in the first place.
Next easiest solution (assumes you have a paid up account.) You publish the app on your account and mark it so it doesn't automatically go in the store after approval. Once the app is approved, transfer ownership to him. There are a whole bunch of restrictions on this process, including No iCloud, Passbook or in-app purchase subscriptions. For more details, Google "Transferring and Deleting iOS Apps" or see [https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/TransferringAndDeletingApps.html]
Next easiest solution would be to give the customer access to the source and explain to him how to build the app and put it in the store.
-- Addition --
A new solution is available now. The client could give you admin privileges to his appstore (https://appstoreconnect.apple.com) account.
The easiest solution to this funny question is to let your client share his screen with logged in account at iTunes Connect (via Team Viewer for example). You do all your job and it's all.
I've just finished an iOS app. Now I need to publish it to the app store using my client's account. I want to be sure that what I'm about to do is the correct path.
That is:
Create the developer certificate using the client's credentials
Build the app using the new developer certificate
Publish and everything else using the client's account
The only other thing that I thought would be to register myself as a developer on his account. However I think at some point I will need the his account to finishing the process. Is that correct?
You'll need a team agent role to publish the app..
Yes, you will need his account to finish the process and actually sign the App file that you send to Apple.
you need to be a "Admin" type user # the developer portal and on itunesConnect.
With Admin user, you can create all sorts of certificates and provisioning that you may require from developing to deployment of an app from any developer account.