Overview of app transfer
You transfer an app when you’ve sold the app to another developer or you want to move it to another App Store Connect account or organization.
You can transfer the ownership of an app to another developer without removing the app from the App Store. The app retains its reviews and ratings during and after the transfer, and users continue to have access to future updates. Additionally, when an app is transferred, it maintains its Bundle ID — it's not possible to update the Bundle ID after a build has been uploaded for the app.
Step 1: Verify that the app can be transferred
The app must meet specific criteria to be transferable. For example, at least one version of the app must have been released to the App Store. For more criteria, visit App transfer criteria.
Step 2: Back up all app information
Because an app is removed from your account after an app transfer, you should back up all information about the app before you transfer it.
Step 3: Initiate the app transfer
The Account Holder user in your organization initiates the app transfer. Visit Initiate an app transfer.
Step 4: Accept the app transfer
The Account Holder in the recipient organization accepts the app transfer. Visit Accept an app transfer.
Apps using auto-renewable subscriptions
Apps that offer auto-renewable subscriptions must use an app-specific shared secret.
Initiate an app transfer
Before initiating a transfer for an app that offers auto-renewable subscriptions, generate an app-specific shared secret. Then, share the code with the user of the developer account you are transferring the app to. After sharing the code, initiate the app transfer.
Accept an app transfer
Before you accept an app transfer for an app that offers auto-renewable subscriptions, obtain the app-specific shared secret from the initiator, so that you can update your servers to use the code to verify auto-renewable subscriptions. Once the app transfer is complete, generate an app-specific shared secret so that users outside of your organization no longer have access to it.
Apps using keychain sharing
Keychain sharing continues to work only until the app is updated. Therefore, the keychain needs to be rebuilt when submitting an update. 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. After users update their app, it will not find an authentication token in the keychain and will ask for a one-time re-login.
Apps using push notifications
Apps using Apple Pay
If you transfer an app that uses Apple Pay, the merchant ID is not transferred along with the app. Transactions continue to be successful as long as the original certificates are valid. However, when you submit an update, a new merchant ID must be created on the recipient’s account.
Apps using Sign in with Apple
As part of preparing your data for the recipient before the transfer, you will need to generate a transfer identifier for each user in your database. You can do this via a REST service endpoint provided by Apple.
If you have grouped your apps for Sign in with Apple, you will need to ungroup them before initiating the transfer.
The Services ID associated with an app that has configured Sign in with Apple will also be transferred. If you don’t want the Service ID to be transferred, remove its association before initiating the transfer.
Apps created with Mac Catalyst
Initiate the transfer of your iPad app first, and then the associated Mac app. It’s important to transfer the Mac app as well, as the transfer recipient won’t be able to use Mac Catalyst to create a new Mac app based on the iPad app.
Apps Using Wallet
If your app distributes Wallet passes that require ongoing updates from your app or web service, the passes will eventually need to be reissued using a new identifier after transfer is complete so they can be signed with certificates issued from your Apple Developer account. To minimize user confusion and avoid interruption, we recommend providing a message in your app to let users know that their previously issued pass will become inactive and to download a new pass from your app or web service.
Apps Using iCloud
If your app uses any of the following, it will be transferred to the transfer recipient after they accept the app transfer.
iCloud to store user data
KVS identifiers associated with the app
If multiple apps on your account share a CloudKit container, the transfer of one app will disable the other apps’ ability to read or store data using the transferred CloudKit container. Additionally, the transferor will no longer have access to user data for the transferred app via the iCloud dashboard. Any app updates will disable the app’s ability to read or store data using the transferred CloudKit container.
If your app uses iCloud Key-Value Storage (KVS), the full KVS value will be embedded in any new provisioning profiles you create for the transferred app. Update your entitlements plist with the full KVS value in your provisioning profile.
Apps using Game Center and Apple Arcade
Multiplayer Compatibility: Apps that are part of a cross-app multiplayer compatibility matrix are no longer compatible with or appear in the other app’s matrix. After the app transfer, the recipient must add multiplayer compatibility to the app in order for it to work with their existing apps.
Game Center Groups: Apps that are part of a Game Center group are removed from the group during the transfer. After the transfer, all leaderboards and achievements revert to their original status. Leaderboards that were originally a group leaderboard retain the
grp. prefix in their identifier. After the transfer is complete, the recipient can add the app to the Game Center groups.
Merged Leaderboards: Leaderboards that were originally single leaderboards but were merged into a group lose the grp.prefix after transfer. They also revert to the original leaderboard IDs they had before the merge. After the app transfer, the recipient must update the app build with the new leaderboard IDs so that scores post correctly.
Matchmaking: Matchmaking configuration isn’t transferred along with the app. For Game Center matchmaking to work, matchmaking rules must be created or modified on the recipient’s side after transfer is complete.
When you transfer an app that is part of an app bundle, you can no longer view your app bundle’s history. It is important to make a record of your app bundle information before you transfer the app.
What happens during and after an app transfer
After an app is transferred, its associated App ID is also transferred to the recipient’s developer account. If the transferor’s App ID was a wildcard App ID, it’s converted to an explicit App ID that exactly matches the app’s bundle ID.
The transferor is responsible for exchanging the actual code set and building assets directly with the recipient. Be sure to inform the recipient about any capabilities or App Store configuration added to the app, such as keychain sharing, Game Center, or push notifications, so these are maintained in future updates.
Keep in mind that regardless of app ownership status, new or additional promo codes do not become available after an app has been transferred. Only 100 promo codes can be generated per app version, and are valid for four weeks from the day they are generated.
Data for Sales and Trends and Payments and Financial Reports
If you transfer your app, you will continue to have access to information for payments and sales that occurred prior to the transfer. You will not be able to access information for sales after the transfer has been completed. The recipient of the transferred app will only receive payment and sales information for transactions that occurred after the transfer.
Data for App Analytics
When you transfer an app from your account to someone else, you will no longer have access to the app's data in App Analytics. You can find the historical data of the app in Sales and Trends. If someone transfers an app to you, you'll get access to all analytics data as of April 1, 2015, or since the app was first made available on the App Store, whichever occurred later.