我将一个应用转移到一个新的开发者帐户。当我从新的开发人员帐户上传构建并通过 Testflight 部署它时,我遇到我的用户从应用程序中注销。
我认为这是由于 Keychain Loss 造成的,因为发生了Team ID
变化。所以,我联系了苹果,他们说没有办法在新的开发者帐户中访问旧的钥匙串,但我可以将应用程序转移回我的旧开发者帐户。
这对我们来说真的很糟糕,因为我们在设备中有用户创建的数据会在注销时丢失。我们也有匿名用户,他们甚至无法重新获得对其帐户的访问权限,因为没有登录凭据。这对我们来说是不可接受的,因为我们会丢失用户数据,但我们还需要将应用程序转移到新的开发者帐户......所以我们正在努力寻找可能的解决方案。
可能的解决方案#1
远非理想:例如,继续使用旧的开发者帐户一个月,并显示一条警报,内容如下:
请保存/备份您的所有数据和注册(如果您有匿名帐户),因为所有未保存的数据将在 [今天日期 + 1 个月] 由于迁移而丢失。带来不便敬请谅解。
一个月后,我们再次转移到新的开发者帐户。当月没有看到消息或没有保存数据的用户,再见数据……太糟糕了。
可能的解决方案#2
我不确定 Firebase Auth iOS SDK 是否具有执行以下操作的 API:
- 再次将应用转移回旧的开发者帐户
- 从那里上传一个新版本,将 Firebase 身份验证状态(例如令牌)临时保存在一个文件中(我知道它不安全......也许我可以加密它)
- 再次将应用转移回新的开发者帐户
- 上传一个新版本以检查该文件是否存在,然后再次将 Auth State 复制到 Firebase Auth SDK 中。这样,用户仍然可以登录,就好像什么都没发生一样。
第二种解决方案有点不安全、复杂且难以测试,但从用户的角度来看,它会比第一种解决方案更理想(如果一切顺利的话)。
所以,特别是我的问题是:
- Firebase Auth 是否可以使用解决方案 #2?
- 有没有人对如何解决这个问题有更多想法?我想传输应用程序(通过登录)是一个常见的用例!
我们目前仅使用匿名和电子邮件/密码身份验证方法。
谢谢!