HomeiOS DevelopmentHow one can migrate SIWA (Check in with Apple) customers for iOS...

How one can migrate SIWA (Check in with Apple) customers for iOS app with Firebase backend when transferring the app to a distinct App Retailer Join staff


Our iOS app makes use of Check in 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 easy methods to migrate an iOS app to a distinct App Retailer Join staff, significantly with a Firebase backend, that will be improbable. Beneath I will present data about our scenario, and I will describe what I perceive up to now concerning the migration course of.

About our app: A number of months in the past, we transferred our iOS app to a distinct App Retailer Join staff, and it appeared that every little thing was fantastic… however lately we realized that we should always have migrated SIWA (Check in with Apple) customers in order that Check in with Apple will proceed to work underneath the brand new staff, however we did not try this, and because 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 will begin getting ready emigrate the SIWA customers to the brand new staff.

Earlier than transferring again to the unique staff, we began receiving errors in the course of the Check in with Apple course of which say “Signal Up Not Accomplished” in Apple’s UI… however the callback authorizationController(controller:didCompleteWithError:) is NOT referred to as.

Sign in with Apple — Sign Up Not Completed error

For reference, this is Apple’s documentation on this topic:

TN3159: Migrating Check in 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

Notice: the primary article comprises 4 damaged hyperlinks (thanks Apple 🙄) nevertheless 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 easy methods to proceed after that? As I perceive it, for a given person, Apple supplies 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 might be completely different… however Firebase would not seem to retailer the sub anyplace, so it is both unimportant OR we have to arrange our personal Auth as a substitute of utilizing Firebase Auth. Ideas?

When utilizing Check in with Apple, the person’s e-mail tackle is uncovered to our app… but when the person opted to make use of a personal relay e-mail tackle, 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 underneath the brand new staff, we can’t acknowledge their “new” e-mail tackle, however we’d like a solution 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 called a “switch identifier”) for every person, and we have to retailer the transfer_sub in our backend to have the ability to permit a person who’s logging in underneath the brand new staff to nonetheless have entry to their “outdated” account in Firebase. Regardless that non-public e-mail relay addresses and subs might be completely different underneath the brand new App Retailer Join staff, the transfer_sub is similar for every person throughout each groups.

In accordance with Apple’s documentation, the person’s sub is required so as to request the transfer_sub… but when we’re not already storing the sub in Firebase, then how can 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 aspect? And what would occur to a person who was utilizing our app for months, then stopped utilizing the app for >60 days whereas we had been doing the migration, after which tried to sign up once more? Will that person be completely be locked out of our app? Is it unimaginable to maintain all customers blissful and capable of log into their accounts on this situation?

TLDR: We’re attempting emigrate an iOS app with a Firebase backend (Auth and Storage) to a distinct App Retailer Join staff… and it is apparently a sophisticated course of as a result of we’re utilizing Check in with Apple. Please assist should you can! Thanks! 🙏

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments