We are planning to distribute our app to certain clients using iOS Private Distribution redemption links. I have gathered all the information from Creating Apple Business manager account to downloading the redemption links from the business manager account.
I have enrolled myself in Apple Business manager account, waiting for apple approval on the same. Before going ahead i have the below questions
Does each redemption link work only for a single user or multiple users can use the link to download the app.?
How do we keep the Redemption link secure.?
Can the Apple Business manager account gives more analytics on our app installations and distribution process.?
Once the app is approved and released, does the subsequent builds should go again apple review process? How does the user know the app updates has been released with newer version?
Each redemption code or link is only valid for a single user. It is the same as if you gifted an app to a user. Once they redeem the code the app is "owned" by their Apple ID. This is one of the major problems with using redemption codes for custom apps; If it is redeemed using a personal Apple ID then you can never remove the app from the user, even if they leave the organisation.
The redemption link itself is not secure. You need to consider the process by which you will send redemption links to users to ensure that they reach the intended user, such as sending it to their work email address
Apple Business manager tells you how many of your "purchased" apps have been redeemed. Once a code is redeemed the user can install the app on any device that has their Apple ID logged in. This is not visible in Apple Business Manager
The review process is the same as for an App Store app; new releases are reviewed as with any app update. Updates will appear in the user's "available updates" list in the App Store app and will be installed automatically if the user has selected that option.
Using redemption links/codes is not best practice for custom apps. It is strongly recommended that you use an MDM to manage deployment of custom apps to devices.
Related
my name is Antony Basta and I am the developer of an app called SecuriKey. SecuriKey allows any old apartment building intercom to be controlled from an app. Users can create entry codes that work once, up to a certain date, or are instantly revokable. There is no need for any new or additional hardware – it works with the buildings existing intercom.
Currently, the app is using Stripe for subscriptions and it was initially approved 2 months ago for the App Store. I pushed an update a few weeks ago and Apple Rejected it because I am not using In-App Purchase (IAP). I submit an appeal, mentioning that we offer a consumable service that takes place outside of the app (guideline 3.1.3(e)), it is effectively a "Reader" app since we provide VoIP numbers to our customers (guideline 3.1.3(f)), and SecuriKey requires hardware to function – that is, it will not work without a physical intercom (guideline 3.1.4). Additionally, we do ship physical goods to our customers (NFC tags and Security Signs) monthly and require monthly service personnel to service the building using the physical goods for our own back end workflow. A lot of back and forth has occurred between the review team and at the time of this post, the app is still being reviewed by the board. I thoroughly believe we fit within all of the mentioned IAP exception guidelines – but that's a conversation for another day.
As I wait, I began to delve into using IAP for this product. I was able to jerry-rig the IAP platform to feed Stripe the necessary data through the notifications apple sends when a subscription is made, and I am able to create an account and collect a payment. But there's one huge oversight. This is a cross-platform app. Meaning, roommates or family members who use different mobile operating systems, can be logged into the same account. A user may sign up from the iPhone but his/her roommate/family member may have an android that also has access to the service under the same account. Thus, the android user will not be able to change the IAP subscription plan from the android side of the service. Furthermore, a web-portal is being developed, and using IAP will not allow us to modify the subscription via the web-portal either.
Has anyone ever dealt with something like this? How can you use IAP for a cross-platform application and allow android users to modify the subscription (Whether it be canceling, upgrading, or downgrading)?
If Apple says you have to use IAPs, you should leverage IAPs and not a payment service provider like Stripe.
I'm confused with what
I was able to jerry-rig the IAP platform to feed Stripe the necessary data through the notifications apple sends when a subscription is made,
means but does not sound like the right thing to do.
Thus, the android user will not be able to change the IAP subscription plan from the android side of the service. Furthermore, a web-portal is being developed, and using IAP will not allow us to modify the subscription via the web-portal either
Your user will have to use Apple's Platform (i.e. an Apple device that they are signed into) to cancel the IAP subscription.
How can you use IAP for a cross-platform application and allow android users to modify the subscription (Whether it be canceling, upgrading, or downgrading)
You can't. Take a look at the IAP experience for subscription services like HBO Max. Accounts are all ultimately provisioned through the same system, but the funding source may differ. When you attempt to manage your subscription, the website or android app could inform you that the subscription is billed via Apple, and send you to a page like this: https://support.apple.com/en-us/HT202039.
If the user has no Apple devices, they can contact Apple Support:
If you don't have an Apple device or Windows PC
You can cancel Apple Music on the web.
You can cancel Apple TV+ on the web.
If you want to cancel a different subscription from Apple, contact Apple Support.
I would like to know if its also possible to transfer an existing app from one Enterprise Developer Account. For example:
We already deployed an app with an existing account and specific app id: com.company.appname
Now i would like to transfer that app (app identifier) to another Enterprise account. Is that possible?
I already know how to migrate apps through developer accounts through iTunesConnect, but how does this work with enterprise apps? Is it allowed to create the "same" app identifier on 2 different accounts? What happens when ill update the app with all the data? The same identifier should only update the existing app, and not install a new one.
How does this work?
Edit: i´ve tried now something new:
use iExplorer to copy all Data from existing App to your Mac
install app with new identifier and new programm
copy all files back to new app, delete the "old" app.
Its about 10 Installations where i want to use the "new" development Programm. Maybe ill just copy all files manually, because in this case ill know that everything works fine.
Yes, you can migrate.
When you migrate your app to other enterprise account, then you will lost your app identifier from your account. When you will update the app from enterprise account, you will see an update of that application, not a new app. From your account, you won't be able to update or make a new app with the same identifier.
Please Note : This is screenshot from a developer account and i'm not sure about enterprise account portal. It should work like developer account too.
Yes, you can transfer your app from one account to another account.
You may not need to delete existing app from your account. There is an app transition process in apple developer account, which moves your app from your account to another account.
Answer to your question: When try to deploy it with another account again it says me "app identifier unavailable, already used" -
so any ideas how to solve this task with enterprise deployment? Or can
i migrate business apps to itunesConnect?
Recommended Solution:
You don't need to remove your app or bundle identifier from your account. You can convert business app into public app by updating certificates and provisioning profiles associated with your app. Then you can process for app transfer between two accounts.
Another Solution:
Delete your app from your developer account (along with bundle identifier) and then create a new app with same identifier in another account, to which you want an app tranfer
Here is an apple guideline for the same:
Transferring and Deleting Apps
You move apps out of your organization’s catalog of apps by
transferring an app to another organization or by deleting the app.
You want to transfer an app when you’ve sold the app to another
developer or you want to move it to another iTunes Connect
organization. You want to delete an app when you’re ready to retire an
app and there’s no chance you will want to offer it for sale or
download in the future or to reuse the app name.
You can transfer the ownership of an app to another developer without
removing the app from the store. The app retains its reviews and
ratings during and after the transfer, and users continue to have
access to future updates. There’s no limit to the number of apps you
can transfer, but each app needs to be transferred individually.
All transfers and deletions are performed by the team agent.
Transferring an App
You’ll need the team agent for the receiving organization to provide the team agent’s Apple ID and Team ID. Recipients can find their Team ID in their account at developer.apple.com.
The team agent is the only one who can transfer an app.
To initiate an app transfer
Make a record of app information you want to have after the transfer.
Because you won’t be able to view the app information after the transfer, make a catalog report (see Requesting Catalog Reports), note dates the app was available on the store (see Viewing Status History), and save sales and download information (see Viewing Sales and Trends).
Open the App Details page for the app, as described in Creating an iTunes Connect Record for an App.
In the App Information section under App Store, scroll to the Additional Information section and click Transfer App.
Make sure the app meets the criteria for transferring.
- If all criteria have been met, click Done.
- If all criteria haven’t been met, resolve those that are outstanding.
Enter the recipient’s Team Agent Apple ID and Team ID, and click Continue.
Verify the transfer information and contract terms.
Read the contract terms, select “I have read and agree to the agreement presented above,” and click Request Transfer.
Click Done to return to the App Details page.
Once the transfer has been initiated and is awaiting acceptance by the recipient, the app stays in its previous status, with the Pending App Transfer status added. You can change the price of the app during this time.
The transfer must be accepted by the recipient organization’s Team Agent within 60 days.
To accept an app transfer
Sign in to iTunes Connect as the Team Agent.
A notice appears indicating that an app is ready to be transferred.
Click Agreements, Tax and Banking.
In the Transfer Agreements section, locate the app being transferred in the Contracts In Process subsection and click Review.
Enter the new metadata and review it.
- Support URL
- Atom feed URL (required if the app previously had an atom feed URL entered)
- Marketing URL (required if the app previously had a marketing URL entered)
- Privacy policy URL (required if the app previously had a privacy policy URL entered)
- CCATS (a new CCATS form is required for apps that use export compliance)
- App Review contact information
- App Store contact information
Read the contract terms, and select “I have read and agree to the agreement presented above,” and click Accept.
It can take up to two business days for the app transfer to complete, during which the app status is listed as Processing App Transfer. While the app is in the transfer state, the following actions apply:
All app metadata, rights, and pricing are locked down on the transferor side and no in-app purchase edits can be made.
Any open communications on the Resolution Center page are closed out.
If the app is part of a Game Center group, no changes can be made to the group on the recipient side.
After the transfer is complete, the app is now owned by the app transfer recipient. It no longer appears in the the transferor’s iTunes Connect account.
Important: The exchange of the actual code set and build assets takes
place directly between the transferor and recipient. App IDs are
transferred automatically in developer.apple.com. To maintain a great
user experience, inform the recipient about any capabilities added to
the app, such as keychain sharing or push notifications, so that the
recipient maintains these capabilities in future updates. Keychain
sharing continues to work until the app is updated, after which point,
prior keychain data cannot be accessed. If the keychain group is
defined in the Xcode project, it must be replaced with a keychain
group created by the recipient (that includes the recipient's Team ID)
for the app to continue using keychain sharing.
I want to transfer my iOS app from one apple store account to other. For both accounts I have team agent role and I have logged in with same access details.
At documentation, I found this article and I want to follow similar steps from my side - Transferring and Deleting Apps
But at above reference link, I found this option/link - Transfer App:
When I actually logged into my account, I can't able to find this kind of option to move app from one account to another. Here is screenshot for my account:
So actually where is the app transfer option?
If you haven't published a version of the app yet, don't worry about transferring it, because you can't.
Log into the team you want to transfer to.
Click on My Apps.
Click the + to create a new app, as you did in the other account.
Fill it in.
Forget about the old record - it's just metadata. If it bothers you, you can change almost everything about the unpublished record and use it for something else.
When To Transfer Apps
There's no point in transferring an empty app record. Simply create a new entry in the other iTunes Connect account. The whole point of an app transfer is to preserve reviews and the upgrade path for users. If those weren't a concern, you'd just create a new app entry anyway.
The only downside to this is that you lose the original app identifier (com.example.appname) but since nobody sees that, it doesn't really matter. Adjust your code signing certificates and you'll be fine.
When Transferring Apps Is Allowed
According to the documentation, there are a few conditions for transferring apps:
Both developer accounts must be completely set up.
The app must have a published version.
The app cannot use entitlements for iCloud or Passbook.
The app cannot use (or have ever used) In-App Purchase subscriptions
The app cannot be cannot be In Review.
Any in-app purchases for the app must also not be in review.
Any in-app purchases for the app must not have product IDs that are the same as in-app purchase products on the destination account.
What Transfers, What Doesn't
These things transfer over:
Bundle ID: The app's bundle identifier
iTunes Connect App Record: Metadata (the description and the rest of the app store entry.) The new team name will appear under the app name once the transfer is complete.
User Upgrades: Users will see the next update from the new account.
These things don't transfer over:
Download Stats: App download number don't transfer over. The new developer account will start from zero downloads.
Keychain Access: Keychain access is lost for transferred apps, because the team prefix changes.
Handoff, Universal Links, Shared Web Credentials: If you're using an apple-app-site-association file, you'll need to modify it to include the old app identifier as well as the new one. You want both, because you don't want to break functionality for users who didn't upgrade yet.
Discussion with Apple Developer support for App transfer related queries, which may help some one
1. Is App transfer between one developer account to another possible ?
Ans: Yes
2. Can you transfer an App that is live on App Store which is published from a Apple Developer Account can be transferred to an Apple Enterprise Account ?
Ans: No
3. After creating new developer account can I transfer the App quickly ?
Ans: After initiating a transfer from sending account the receiving account need to accept the App transfer request, and after accepting the request it will take 1 or 2 days for the transfer to complete. During this transfer process the will not be available in appStore.
4. How many days will it take to create a new Developer account?
Ans: It is not same all the time, but usually takes 2 to 3 days.
5. Post expiry of the developer account can I transfer the App to a new developer account?
Ans: No post expiry of your developer account you can’t initiate the transfer, and if you need to transfer you need to call the Apple Customer support and then we will do it.
6. Can I use the same App name after the account to which it belongs expires?
Ans: You can use the same name only if you transfer that App from the old developer account to new developer account. As every App name is unique in AppStore. And there is also app data maintained for each single App, even if you delete an App from the App Store, Apple will store and maintain the app data, So you can’t create a App with the same name even if you delete the App as Apple will maintain the app data related to that particular App. But you really want to upload a different App with the same name, you after deleting you App need to call Apple Customer support and request them to delete the "app data” which was maintained by them for the App which you just deleted. And after Apple deletes that “app data” you can create a new app with the same name.
7. In an enterprise account can I create developer account and publish App to the App Store ?
Ans: No
8. Can I use the same id to create both Developer and Enterprise account ?
Ans: No
9. In my old account I have some member added in people section with different roles, will that also gets transferred?
Ans: No, You need to add them again to the new developer account.
10. When I transfer will all the TestFlight data also gets transferred ?
Ans: No
11. After App transfer, will the already installed Application will work correctly ?
Ans: Yes
12. And if I push update for the App, from the new developer account will the already installed App get the update?
Ans: Yes, they will get the new update, for them there will be no difference.
13. App ratings and user reviews will also get transfer to the new developer account ?
Ans: Yes
14. App id for the App will also remain same after transferred to new account right ?
Ans: yes
15. What if the App has some payment related to it and the previous account had some bank details added for that?
Ans: If this is the case then we need to first add the bank details, and then initiate the transfer.
Have a nice day :)
Your App status says "Prepare for submission" and there is no published version so you have to get your app published first and as mentioned in the Apple's documentation "The app should have at least one published version for transfer".
I am developing an iOS application where all payment related things are on existing website, our app don't have any payment related thing in it. A user adds payment details on website and select appropriate plan and can use it on both website and iOS app.
So please tell me that if i have nothing on app for using In-App purchase then it will be get approved on app store or get rejected just because app is not giving them their 30% share?
I need some expert advise...
I just read through that exact section of the developer guidelines, and it confirms that that is prohibited. A recent example of such apps being rejected: apps using Dropbox were being rejected (the Dropbox API had a button that could navigate users to their website to upgrade their account instead of having it take place in-app, where Apple would have gotten a percentage).
A quote from that article:
In case you’re wondering what the reasoning these apps are getting for rejection, here’s what Apple is responding with:
11.13
We found that your app provides access to external mechanisms for purchases or subscriptions to be used in the app, which is not in compliance with the App Store Review Guidelines.
Specifically, your app enables to user to create accounts with Dropbox and Google.
Well that sucks. Apparently at some point when using an app that utilizes the Dropbox SDK, you can create an account for the service if you don’t already have one. At that point, there’s a link to a desktop version of Dropbox that lets you upgrade your account. That’s exactly what Apple isn’t a fan of.
My suggestion would be to make them available for purchase via an in-app purchase, charge 30% more for it (so you make the same amount as if the user made the purchase on the web or on Android), but make the user's job post last for 30% more time. This isn't quite fair for you because, if you make $100 off John for an 30-day listing, you would still only make $100 off me for a 39-day listing (assuming I bought the listing via the iOS app). That said, there is no incentive for me to pay for the listing via the iOS app because I am paying $130 (30% more than John) for it and the additional days.
Best of luck.
http://thenextweb.com/apple/2012/05/02/apps-using-dropbox-are-being-rejected-because-apple-is-playing-hardball/
The link on App Store Review Guidelines mentions:
3.1.3(b) Multiplatform Services: Apps that operate across multiple platforms may allow users to access content, subscriptions, or features they have acquired
elsewhere, including consumable items in multi-platform games, provided those
items are also available as in-app purchases within the app. You must not directly or indirectly target iOS users to use a purchasing method other than in-app purchase, and your general communications about other purchasing methods must not discourage use of in-app purchase.
I am not sure how Netflix does this. New users cannot signup on iOS App, but can sign up on website, purchase subscriptions and use in iOS App.
I am developing an Application where I want the user to log in with his/her Apple ID.
Is this possible? If so, how can I do this?
Apple introduced Sign In with Apple at their worldwide developer conference, WWDC 2019.
Here's how Apple describe it:
Sign In with Apple makes it easy for users to sign in to your apps and websites using their Apple ID. Instead of filling out forms, verifying email addresses, and choosing new passwords, they can use Sign In with Apple to set up an account and start using your app right away. All accounts are protected with two-factor authentication for superior security, and Apple will not track users’ activity in your app or website.
Sign In with Apple requires iOS 13 or later, iPadOS 13 or later, watchOS 6 or later, macOS Catalina 10.15 or later, and tvOS 13 or later.
Nope, there is an standard API for this. You could use a UIWebView to make a user log in to an existing login form somewhere on apple.com, and then check for the subsequent success or failure URL, but that would probably be both brittle and rejected by the App Store approval process.
It is not possible currently. Your best bet is to submit a feature request at https://bugreport.apple.com/
If you want to authenticate users without setting up your own registration system, you could adopt Facebook Connect. Lots of people already use Facebook obviously, and you don't have to maintain the signup/forgot password/security stuff at all.
If you don't like Facebook, Google also offers a similar system. (see https://developers.google.com/accounts/docs/MobileApps)
Apple will probably never allow you to log in with the user's Apple ID.
You might be able to allow your users to log into Game Center. The user's Game Center account is tied to the AppleID, so users can be identified by your app that way. But this is assuming that you were actually building a game.
Apple's Game Center documentation is here: https://developer.apple.com/library/ios/#documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/15_GameCenter/GameCenter.html#//apple_ref/doc/uid/TP40011225-CH7-SW1
The App Store Review guidelines preclude using any information from Apple's services in your app, which is why it's dubious they would ever allow you to login with an Apple ID:
12. Scraping and aggregation
12.1
Applications that scrape any information from Apple sites (for example from apple.com, iTunes Store, App Store, iTunes Connect, Apple Developer Programs, etc) or create rankings using content from Apple sites and services will be rejected
If what you want to achieve is a seamless user experience between the user's different iOS devices without requiring the user to pick a username and password for your service you could maybe use iCloud. But of course it depends on what you are building. Apple provides some videos introducing the different iCloud APIs: https://developer.apple.com/icloud/documentation/