TestFlight 预发布 beta 应用程序版本是否会更新现有的 App Store 版本,或在测试人员的设备上安装该应用程序的另一个实例?

Will TestFlight prerelease beta app version update existing App Store version, or install another instance of the app on tester's device?

我们将向外部用户提交应用的预发布版本,但我想知道:他们的体验会如何?

  1. 用户在设备上安装了 App Store 生产版本的应用程序,现在通过 TestFlight 安装了新的测试版。这将是就地更新,保留数据,还是擦除数据的全新安装,或者 TestFlight 的版本将在生产旁边安装 - 以便用户拥有该应用程序两次?

  2. 测试结束,正式版提交至App Store。测试人员能否在保留 Beta 版数据的情况下无缝(就地)更新到新的 App Store 版本?还是完全擦除?还是 Beta 版会保留在他的设备上,他必须从头开始下载新的完整版本?

顺便说一下,我已经提交了 关于测试版与生产版的版本编号。

  1. 根据https://developer.apple.com/testflight/

    Once you accept your invitation, you’ll be able to download a beta version of the app you’ve been invited to test. If you already have the live app installed on your device, the beta version of the app will replace the live version. When you’ve downloaded the beta app, you’ll see an orange dot next to its name that identifies it as a beta. TestFlight will notify you each time a new build is available and provide instructions on where to focus. You can easily offer feedback by tapping the Provide Feedback button in the App Details view in TestFlight. An email automatically opens with pertinent app and device details, and you can add additional details and screenshots.

    据说应用程序的测试版将取代正式版。原因是测试版应用程序与 App Store 中的应用程序具有完全相同的包标识符。

  2. 安装 beta 应用程序后,用户仍会看到来自 App Store 的更新,因为已安装实时版本(不会丢失任何数据),因为 beta 应用程序是使用完全相同的方式部署的证书.

我认为情况在不久前发生了变化。

即使您有测试版(使用生产证书签名 - 请记住,不需要 AdHoc),TestFlight 版本也将作为现有应用程序的更新。我测试了这些东西,可以确认没有 NSUser 定义的实体被 TestFlight 构建覆盖或删除。

对于第二部分:如果应用程序不是主要版本,用户可以保留保存的数据(我的意思是,您不能指望以某种格式存储的数据库可以与您的应用程序版本的另一个新模型一起使用)。为确保您的应用不会清除或尝试修改以前的内容,请对新应用进行版本检查。如果找到数据,请更新到新架构。我认为这是要走的路。无论如何,您不能拥有该应用程序的重复版本,因为它们是由相同的配置文件签名的。