ern*_*ton 5 keychain ios app-transfer firebase-authentication
我将应用程序转移到新的开发者帐户。当我从新的开发者帐户上传构建并通过 Testflight 部署它时,我遇到用户从应用程序注销的情况。
\n我认为这是由于钥匙串丢失造成的,因为Team ID发生了变化。因此,我联系了Apple,他们说无法访问新开发者帐户中的旧钥匙串,但我可以将应用程序转移回我的旧开发者帐户。
这对我们来说确实很糟糕,因为我们在设备中保存了用户创建的数据,这些数据在注销时会丢失。我们还有匿名用户,他们甚至无法重新获得对其帐户的访问权限,因为没有登录凭据。这对我们来说是不可接受的,因为我们会丢失用户数据,但我们还需要将应用程序转移到新的开发者帐户......因此我们正在尝试寻找可能的解决方案。
\n远非理想:例如,继续使用旧的开发者帐户一个月,并显示一条警告,内容如下:
\n\n\n请保存/备份您的所有数据并注册(如果您有匿名\n帐户),因为由于迁移,所有未保存的数据将在[今天日期 + 1\n个月]丢失。带来不便敬请谅解。
\n
一个月后,我们再次转账到新的开发者账户。当月没有看到该消息或没有保存数据的用户,再见数据\xe2\x80\xa6 可怕。
\n我不确定 Firebase Auth iOS SDK 是否具有执行以下操作的 API:
\n第二种解决方案有点不安全、复杂且难以测试,但从用户的角度来看,它比第一种解决方案更理想(如果一切顺利的话)。
\n所以,我的具体问题是:
\n我们目前仅使用匿名和电子邮件/密码身份验证方法。
\n谢谢!
\n所以,我没有找到理想的解决方案。
我最终混合了解决方案#1和#2:
我将应用程序转移回旧的苹果帐户
我上传了一个新版本:
a. extracts keychain data (which has login credentials and other stuff)
b. encrypts this data (I used CryptoSwift)
c. saves it into a file in the documents directory
Run Code Online (Sandbox Code Playgroud)
等待 1-2 个月,以便用户可以打开应用程序来执行迁移的第一部分
在等待的过程中,我们发送电子邮件和推送通知,要求用户备份数据,并表示即将进行大迁移,借口是我们最近“成长”了很多,并且正在扩展内容:P
将应用程序转移到新的苹果帐户
我上传了一个新版本:
a. checks if the migration file exists (in the documents directory)
b. if exists, read the migration file and decrypts data
c. puts this data into the keychain (which is empty after app transfer)
d. deletes the migration file from the documents directory
Run Code Online (Sandbox Code Playgroud)
将此迁移代码保留几个月,以便人们打开应用程序并执行迁移
删除代码,迁移期结束。
我将日志发送到后端以查看迁移是否成功。到目前为止,用户均已正确迁移。
在某些情况下,用户可能会丢失数据,例如,当匿名用户未执行迁移的第一部分时。但我想不出更好的解决方案......到目前为止数据丢失是最小的。但我们也花了一些时间来把事情做好并进行所有适当的测试。
如果以后有人对这个问题有更好的解决方案,请告诉我!!我很好奇。
我希望答案对某人有所帮助。
| 归档时间: |
|
| 查看次数: |
1665 次 |
| 最近记录: |