Transferring multiple apps that use Sign in with Apple

Hello,

These questions are in regard to transferring Sign in With Apple users as part of an app transfer to another developer team. We’ve already read and absorbed the following documents from Apple, but we still have questions that aren’t covered in these documents, due to the unique nature of our use case.

Transferring Your Apps and Users to Another Team

Bringing New Apps and Users Into Your Team

Resolving Sign in with Apple Response Errors

Background:

  • We have a suite of three apps that we are tranferring to another developer team.
  • Each app supports Sign In With Apple.
  • Our accounts/users are shared among all three apps.
  • We have all three apps currently grouped together for SIWA. We’re aware that we will need to un-group them before doing the SIWA user transfer.

Questions:

  1. The API for generating and exchanging transferIDs for users (endpoint /auth/usermigrationinfo) requires a parameter client_id which is described in the docs as "The identifier (App ID or Services ID) for the transferring app."

    Since we are transferring a set of three apps which share users, we aren’t sure which AppID to use, or whether it matters? We’re assuming we only need to transfer the users once in total (not once-per-app), is this correct?

    Does it matter which of the three apps’ AppID we use for this?

    To give more specific context to this question, here’s a more detailed example:

    • For simplicity’s sake, let’s say we have 10 user accounts total, and any of them could sign into any of our three apps.
    • Users 1-7 have signed into all three apps previously
    • User8 has only signed into AppA
    • User9 has only signed into AppB
    • User10 has only signed into AppC

    Ideally we want to transfer all 10 users all at once. Does it matter which AppID we use for client_id? For example, if we use AppA as the client_id, will we still be able to transfer all 10 users (including User9 and User10)?

    We’ve tested this on the sender team side, and we’re able to successfully create transferIDs for all 10 users using AppA as client_id. But we’re not sure if this will still work on the recipient side, that we’ll be able to exchange the transferID for all 10 users.

.

  1. To add another wrinkle, there is a possibility that we won’t be able to transfer one of our three apps (due to one of Apple’s limitations for app transfer). In that case we’ll have to create a new app on the recipient team and shut down the old one on the sender team. But the other two apps in the suite would still be transferred normally. We’d still want all 10 users to be transferred, as the intention is still that all our users can sign into any of their existing accounts in any of the three apps.

    Would this scenario change the answer to question 1? For example, say we aren’t able to transfer AppC over to the new development team, but instead had to create a new app, AppCNew on the new development team. But we still are able to transfer AppA and AppB. Would we still be able to transfer all 10 users using AppA as the client_id? Including User10 who only ever signed in to AppC (which isn’t being transferred)?

We'd really appreciate any answers or guidance that anyone can provide.

Thank you, Adam

Answered by DTS Engineer in 818244022

Hi @BonoboAdam2,

Before we begin, please ensure you've reviewed the following resources:

You wrote:

  1. [...] Does it matter which of the three apps’ AppID we use for this?

If the three apps are grouped, the primary app's bundle ID can be used for user migration requests—its user accounts will include all of its child app accounts as well.

Next, you wrote:

  1. [...] Would this scenario change the answer to question 1?

The private user data (e.g., user ID and private relay email address) are team scoped. The same value will be provided for all Sign in with Apple enabled apps managed by the same developer team. If a transfer ID is generated for a given user, and migrated to the new team-scoped user ID and email address, the same values can be used for all transferred apps associated with the same user.

Cheers,

Paris X Pinkney |  WWDR | DTS Engineer

Hi @BonoboAdam2,

Before we begin, please ensure you've reviewed the following resources:

You wrote:

  1. [...] Does it matter which of the three apps’ AppID we use for this?

If the three apps are grouped, the primary app's bundle ID can be used for user migration requests—its user accounts will include all of its child app accounts as well.

Next, you wrote:

  1. [...] Would this scenario change the answer to question 1?

The private user data (e.g., user ID and private relay email address) are team scoped. The same value will be provided for all Sign in with Apple enabled apps managed by the same developer team. If a transfer ID is generated for a given user, and migrated to the new team-scoped user ID and email address, the same values can be used for all transferred apps associated with the same user.

Cheers,

Paris X Pinkney |  WWDR | DTS Engineer

Hi ,

Thanks for the response, that was helpful!

I do have a couple follow-up questions based on your response. You wrote:

If the three apps are grouped, the primary app's bundle ID can be used for user migration requests—its user accounts will include all of its child app accounts as well.

The three apps are grouped currently, but according to the document Overview of app transfer, we should un-group them prior to the transfer. My understanding is that after ungrouping them, there no longer will be a single primary that covers all three apps. At that point then, will it matter which AppID we use for the transfer?

The reason for that question is that there's one other detail I didn't mention in my original question (to keep it simple), but might now be relevant. Our apps are grouped using a primary App ID that was created manually in the developer portal, but doesn't actually belong to any real app (and therefore won't be transferred). So all three apps are currently grouped using a primary AppID which doesn't belong to any of these three apps themselves, but rather a special AppID that we created solely to act as the primary. (We acknowledge this might be an unusual setup, but there were "reasons" 🙂)

So if, as you suggested, we're need to use the primary AppID (or at least the AppID that was the primary prior to un-grouping), can we use this non-app AppID for the migration requests? Or do the migration requests require that it be an AppID of an app that is actually be transferred? And if the latter, we're back to asking whether will it matter which of the three we use?

Thank you, Adam

Accepted Answer

Hi @BonoboAdam2,

You wrote:

[...] The three apps are grouped currently, but according to the document Overview of app transfer, we should un-group them prior to the transfer. My understanding is that after ungrouping them, there no longer will be a single primary that covers all three apps. At that point then, will it matter which AppID we use for the transfer? [...]

Correct, you must ungroup apps before the app transfer. The app ID used for the user migration can be any app belonging to the developer team authorized by the user. It doesn't need to be the exact app the user has authorized.

Next, you wrote:

[...] Our apps are grouped using a primary App ID that was created manually in the developer portal, but doesn't actually belong to any real app (and therefore won't be transferred). [...] So if, as you suggested, we're need to use the primary AppID (or at least the AppID that was the primary prior to un-grouping), can we use this non-app AppID for the migration requests? Or do the migration requests require that it be an AppID of an app that is actually be transferred? And if the latter, we're back to asking whether will it matter which of the three we use? [...]

You could use any app ID that was successfully transfer to complete the transfer ID exchange for team-scoped user credentials.

Please let me know if you have any further questions.

Cheers,

Paris X Pinkney |  WWDR | DTS Engineer

Thank you Paris, that answers my questions and is really helpful! Based on your recent reply, it sounds like we shouldn't have any problems transferring our Sign in with Apple users. :)

Thanks, Adam

Transferring multiple apps that use Sign in with Apple
 
 
Q