gpt4 book ai didi

ios - 应用程序传输钥匙串(keychain)丢失 : Solutions to users logging out

转载 作者:行者123 更新时间:2023-12-04 15:20:18 25 4
gpt4 key购买 nike

我将一个应用转移到一个新的开发者帐户。当我从新的开发者帐户上传构建并通过 Testflight 部署它时,我遇到我的用户从应用程序注销。
我认为这是由于 Keychain Loss,因为 Team ID改变了。因此,我联系了 Apple,他们说无法访问新开发者帐户中的旧 Keychain,但我可以将应用程序转移回我的旧开发者帐户。
这对我们来说真的很糟糕,因为我们在设备中拥有用户创建的数据,这些数据会在注销时丢失。我们也有匿名用户,他们甚至无法重新获得对他们帐户的访问权限,因为没有登录凭据。这对我们来说是 Not Acceptable ,因为我们会丢失用户数据,但我们还需要将应用程序转移到新的开发者帐户......所以我们正在努力寻找可能的解决方案。
可能的解决方案#1
远非理想:例如,继续使用旧的开发者帐户一个月,并显示如下警告:

Please save/backup all your data and signup (if you have an anonymousaccount) because all unsaved data will be lost on the [todays date + 1month] due to a migration. Sorry for the inconvenience.


一个月后,我们再次转入新的开发者账号。那个月没有看到消息或者没有保存数据的用户,再见数据……太糟糕了。
可能的解决方案#2
我不确定 Firebase Auth iOS SDK 是否具有执行以下操作的 API:
  • 再次将应用程序转移回旧的开发者帐户
  • 从那里上传一个新版本,将 Firebase 身份验证状态(例如 token )临时保存在一个文件中(我知道它不安全......也许我可以加密它)
  • 再次将应用转移回新的开发者帐户
  • 上传检查该文件是否存在的新构建,然后再次将 Auth State 复制到 Firebase Auth SDK。这样用户仍然登录,就好像什么都没发生一样。

  • 第二种解决方案有点不安全、复杂且难以测试,但从用户的角度来看,它会比第一种解决方案更理想(如果一切顺利)。
    所以,特别是我的问题是:
  • 使用 Firebase 身份验证可以解决方案 #2 吗?
  • 有没有人对如何解决这个问题有更多想法?我想传输应用程序(带登录)是一个常见的用例!

  • 我们目前仅使用匿名和电子邮件/密码身份验证方法。
    谢谢!

    最佳答案

    所以,我没有找到理想的解决方案。
    我最终混合了解决方案 #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
  • 等待了 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
  • 将此迁移代码保留几个月,以便人们打开应用程序并执行迁移
  • 删除代码,迁移期结束。

  • 我将日志发送到后端以查看迁移是否成功。到目前为止,用户都在正确迁移。
    仍然存在用户可能丢失数据的情况,例如,当匿名用户没有执行迁移的第一部分时。但我想不出更好的解决方案……到目前为止,数据丢失很少。但我们也花了一些时间才能把事情做好并进行所有正确的测试。
    如果以后有人对此问题有更好的解决方案,请告诉我!!我很好奇。
    我希望答案对某人有所帮助。

    关于ios - 应用程序传输钥匙串(keychain)丢失 : Solutions to users logging out,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63443507/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com