【问题标题】:Does NSUserDefaults persist after app transfer?应用程序传输后 NSUserDefaults 是否仍然存在?
【发布时间】:2016-10-06 02:32:04
【问题描述】:

对于在一个开发帐户之间转移到另一个开发帐户的应用程序(不同的团队,因此将有不同的捆绑 ID 前缀),一旦从新的开发帐户发布更新,保存在 NSUserDefaults 中的值或整个事情都解决了吗?

【问题讨论】:

  • 只需将应用程序安装到您的设备中,如果它成为第二个应用程序,NSUserDefault 将不会出现在新应用程序中,因为它会跟随应用程序本身
  • NSUserDefaults 在应用程序更新之间持续存在,因此如果这是定期更新,它应该不是问题。问题是您无法在具有应用程序先前“预传输”版本的设备上“测试”任何开发构建或临时构建。这是一个已知问题,由苹果公司记录,但是他们没有提到任何关于 NUSeDefaults 的内容

标签: ios xcode nsuserdefaults


【解决方案1】:

答案实际上是YES - 我用两个实时应用程序测试了这一点,这些应用程序从一个 iTunes 连接帐户转移到另一个帐户(具有不同的团队 ID),并且只有 NSUserDefaults 来存储和加载用户数据/设置。正如我所怀疑的,这确实有效的原因是NSUserDefaults 不依赖包标识符的前缀来确定要使用哪个容器。

TLDR:

【讨论】:

    【解决方案2】:

    答案是否定的,原因如下。

    数据将在应用程序的整个生命周期内保存在 NSUserDefaults 中,

    如果您正在安装具有另一个捆绑 ID [新捆绑 ID] 的应用,那么它将被视为另一个应用,因此不会保存旧应用 [旧捆绑 ID] 中的任何旧数据。

    【讨论】:

    • 是的,但捆绑包 ID 基本相同。前缀(他从包 id 中隐藏的内容已更改),并且根据 NSUserDefaults 文档,在决定应用程序 NSUserDefault “容器”时不包括前缀......所以你实际测试过这个吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    相关资源
    最近更新 更多