测试更新时的TestFlight警报:您已安装此应用程序

时间:2015-11-05 08:16:20

标签: ios testflight

我尝试使用TestFlight测试从实时App Store应用程序构建到RC的更新方案,但TestFlight向我发出警告“您已安装此应用程序。是否要替换...”(请参阅​​下面的屏幕截图)。确认后,App Store版本中的所有数据都消失了。

enter image description here

我做的步骤

  1. 从App Store安装实时应用
  2. 登录并执行一些操作以获取应用和Keychain中的数据
  3. 转到TestFlight iOS应用
  4. 点按TestFlight中的“安装”按钮 - >警告“您已安装此应用程序”出现
  5. 如果点击选择安装,则安装新版本
  6. 结果

    • 当我再次打开应用程序时,应用程序的内容包括共享容器(与扩展程序共享的数据)和钥匙串完全删除

    编辑:TestFlight中的警报随任何应用程序一起出现(我尝试过来自不同开发帐户的多个不同应用程序)。实际的数据删除只发生在一些人身上。

    我的问题

    这是TestFlight的预期行为还是我的应用程序有任何问题?我不知道任何可能导致任何问题的版本之间的任何变化。

    我相信这种情况以前没有发生过(几周前我最后一次尝试过)。

    我找不到有关TestFlight应用行为或更改的任何文档或发行说明。

    有没有人遇到同样的问题?或者您是否知道描述此行为的任何资源?

    感谢您的回答!

3 个答案:

答案 0 :(得分:16)

经过长时间的研究,试验和错误,创建雷达并向App Store发布更新,我得到了答案:

警报始终与丢失数据无关。

  • 对于通过Non TestFlight Build从TestFlight安装的任何应用程序,始终显示带有可能丢失数据警告的警报。
  • 对于我尝试过的多个应用中的任何一个都是如此。
使用TestFlight构建覆盖应用时,

identifierForVendor会发生变化。

  • 如果您安装了应用商店版本的应用,并使用TestFlight中的内容覆盖它,则[[UIDevice currentDevice] identifierForVendor]更改结果
  • 这是意料之外的,因为文档中没有提到它(见下文)
  • 在我的情况下,identifierForVendor的意外更改导致“数据松动”,这不是实际的数据丢失,但它只发生在您无法调试的TestFlight构建中,因此很难找到问题。

[[UIDevice currentDevice] identifierForVendor]的文档说:

  

在iOS设备上安装应用程序(或来自同一供应商的其他应用程序)时,此属性中的值保持不变。当用户从设备中删除所有该供应商的应用程序并随后重新安装其中一个或多个应用程序时,该值会更改。使用Xcode安装测试版本或使用ad-hoc分发在设备上安装应用程序时,该值也会发生变化。

答案 1 :(得分:1)

据我所知,

如果你已经在你的设备上从App Store安装了应用程序(假设版本号为1.0),并且让我们再次从TestFlight下载/安装相同版本号为1.0的相同应用程序,则会收到以上消息。
/> 这是因为您正在尝试使用设备上已存在的相同版本和捆绑ID来安装应用程序。

当您更换应用程序而不更新时,您将丢失应用程序的数据/设置。 />
我也经历了这种情况。

答案 2 :(得分:0)

  

如果您的设备上安装了完整版的应用,并且安装了相同的Beta应用,则您的应用数据可能已损坏或丢失,可能无法恢复。您应该在安装Beta应用程序之前备份您的信息。

http://www.apple.com/legal/internet-services/itunes/testflight/sren/terms.html

我不知道这是怎么发生的