NSUserDefaults 会从 TestFlight 持续到最终的 App Store 版本吗?

Will NSUserDefaults Persist from TestFlight to the Final App Store Version?

我使用 Xcode 在我的 phone 上安装了我的应用程序,当我从 TestFlight 安装它时,我收到一条警告,说该应用程序已经安装并询问我想更换它,我同意了。

警报说应用程序的数据可能会丢失,但实际上所有数据都在那里,包括保存到 nsuser 默认值的数据。

所以我的问题是,如果在 TestFlight 版本之上安装从应用商店下载的最终版本,是否会发生同样的情况?

我问这个是因为我的应用程序有一个应用程序内购买,并且购买所做的是将 bool 设置为 true 并将其保存到 nsuserdefaults。我希望我的 Beta 测试人员能够免费获得应用内购买,所以我想知道当他们获得最终版本时该布尔值是否仍会设置为 true。

如果来自 App Store 的应用程序与来自 TestFlight 的应用程序具有相同的 Bundle ID,则 NSUserDefaults 不会被删除(我假设当您从 App Store 下载应用程序时,来自 TestFlight 的应用程序已安装在您的 iOS 设备上)。

是的,在 NSUserDefaults 中处理 in-apps 并不是一个好的解决方案。您可以查看类似 MKStoreKit 的内容来处理 in-apps.

这似乎是一个典型的 XY 问题:你问了一件事(用户默认)但你真的想解决不同的问题(in-app 购买)。

当您 in-app 购买时,您的应用需要有恢复购买的方法,这样购买新 iOS 设备的任何人都可以下载他们购买的应用,并恢复所有购买。

在这种情况下,将没有用户默认值,因为它是全新的 phone 或 iPad。

使用 TestFlight 的人应该知道他们是 Beta 测试人员,可能会发生各种不愉快的事情,包括崩溃、数据破坏、购买的 in-app 丢失等等。