Our iOS app makes use of Sign up with Apple to authenticate customers, and we use Firebase for the backend — for each Auth and Storage. If anybody can present steering and/or share expertise on find out how to migrate an iOS app to a unique App Retailer Join staff, notably with a Firebase backend, that will be improbable. Beneath I am going to present data about our scenario, and I am going to describe what I perceive up to now in regards to the migration course of.
About our app: A number of months in the past, we transferred our iOS app to a unique App Retailer Join staff, and it appeared that every part was advantageous… however not too long ago we realized that we must always have migrated SIWA (Sign up with Apple) customers in order that Sign up with Apple will proceed to work below the brand new staff, however we did not do this, and on account of lacking the 60-day window, Apple’s documentation says that we now must switch the app again to the unique staff… after which we are able to begin making ready emigrate the SIWA customers to the brand new staff.
Earlier than transferring again to the unique staff, we began receiving errors through the Sign up with Apple course of which say “Signal Up Not Accomplished” in Apple’s UI… however the callback authorizationController(controller:didCompleteWithError:)
is NOT known as.
For reference, here is Apple’s documentation on this topic:
TN3159: Migrating Sign up with Apple customers for an app switch
https://developer.apple.com/documentation/technotes/tn3159-migrating-sign-in-with-apple-users-for-an-app-transfer
Transferring your apps and customers to a different staff
https://developer.apple.com/documentation/signinwithapple/transferring-your-apps-and-users-to-another-team
Bringing new apps and customers into your staff
https://developer.apple.com/documentation/signinwithapple/bringing-new-apps-and-users-into-your-team
Be aware: the primary article comprises 4 damaged hyperlinks (thanks Apple 🙄) however it’s fairly clear that these 2 different hyperlinks ☝️ are the place these damaged hyperlinks ought to be pointing to.
In our scenario, it is clear that we have to switch the app again to the unique staff. However find out how to proceed after that? As I perceive it, for a given person, Apple offers a sub
which is principally a person ID that’s particular to that staff. After the app is transferred to the brand new staff, the sub
returned from Apple will likely be totally different… however Firebase does not seem to retailer the sub
anyplace, so it is both unimportant OR we have to arrange our personal Auth as an alternative of utilizing Firebase Auth. Ideas?
When utilizing Sign up with Apple, the person’s e mail handle is uncovered to our app… but when the person opted to make use of a personal relay e mail handle, that is an issue, as a result of non-public relay e mail addresses are ALSO particular to that staff. If the person with a personal relay e mail tries to log in below the brand new staff, we can’t acknowledge their “new” e mail handle, however we want a option to affiliate that person with their “outdated” account in Firebase.
The answer offered by Apple is that we have to request the transfer_sub
(also referred to as a “switch identifier”) for every person, and we have to retailer the transfer_sub
in our backend to have the ability to enable a person who’s logging in below the brand new staff to nonetheless have entry to their “outdated” account in Firebase. Though non-public e mail relay addresses and sub
s will likely be totally different below the brand new App Retailer Join staff, the transfer_sub
is identical for every person throughout each groups.
In keeping with Apple’s documentation, the person’s sub
is required with the intention to request the transfer_sub
… but when we’re not already storing the sub
in Firebase, then how will we request the sub
for each person, then the transfer_sub
for each person, after which retailer that data in Firebase? Does this must occur on the iOS facet? And what would occur to a person who was utilizing our app for months, then stopped utilizing the app for >60 days whereas we have been doing the migration, after which tried to register once more? Will that person be completely be locked out of our app? Is it not possible to maintain all customers glad and capable of log into their accounts on this state of affairs?
TLDR: We’re attempting emigrate an iOS app with a Firebase backend (Auth and Storage) to a unique App Retailer Join staff… and it is apparently an advanced course of as a result of we’re utilizing Sign up with Apple. Please assist in case you can! Thanks! 🙏