【问题标题】:Changing dev iPhone app's bundle identifier - retain core data store?更改开发 iPhone 应用程序的捆绑标识符 - 保留核心数据存储?
【发布时间】:2010-06-24 21:28:06
【问题描述】:

我需要先更改我的 iPhone 应用程序的捆绑标识符,然后才能将它上传到应用商店。但是,我的核心数据存储中也有数据,即使在我更改了捆绑标识符之后也希望继续使用这些数据。然而,捆绑标识符似乎是 iPhone 知道应用程序是否彼此相同的方式,所以我最终在我的手机上得到了两个不同的应用程序副本——具有两个不同的核心数据存储!我知道我可以通过 Xcode 管理器下载 sqlite 数据存储,如何确保我的数据传输到具有新捆绑标识符的新应用程序包?

【问题讨论】:

    标签: iphone iphone-sdk-3.2


    【解决方案1】:

    除了 OS4 的一些例外情况,每个应用程序(由其 BI 标识)在手机上都有自己的隔离存储。 如果你真的需要改变这一点(也会为“旧版本”的买家禁用免费更新),你必须找到一种外部迁移方式。

    许多应用程序都提供某种“备份”(在 PC/MAC 或其他设备上)。 我们为客户所做的是建立一个允许“短时间数据存储”的网站。 这样旧的应用程序就可以上传数据 - 新的应用程序将其加载下来。 当然,这意味着首先更新您的旧应用以进行“导出”。

    但是“您的应用程序生活在它自己的孤立世界中”的想法也意味着您无法访问其他应用程序的数据。 从安全的角度来看,这很重要而且很好。 对于构建应用程序想要共享数据的“应用程序套件”,这很糟糕。 但是苹果在 OS4 中对此进行了增强-(我猜)这对您的情况没有帮助,因为“共享应用程序”也必须经过特殊设计。

    【讨论】:

    • 谢谢,这很有帮助。真的,这只是我自己使用的数据——该应用程序尚未向公众发布——但我只需要重建它。不是世界末日。
    【解决方案2】:

    我知道这个问题已经很老了,但我只是在寻找同一问题的答案时才注意到它,并认为它仍然可能对其他人有用。原发帖人对自己的问题回答了一半,但没有完全采取下一步行动。

    如果您尚未在应用商店上发布您的应用,并且您想更改捆绑标识符,则可以使用上面建议的 Xcode 管理器将您的 CoreData 商店从一个沙箱复制到另一个沙箱。显然,这仅对您自己的设备有用(我认为这是原始海报想要做的);如果其他用户购买了您的应用,此过程将不允许在其他用户的设备上传输数据,因此请勿在您的应用发布后更改您的捆绑标识符。

    首先,在您的设备上运行旧应用(具有旧捆绑标识符的应用)。在 Xcode 管理器中,选择您的设备,然后选择应用程序,然后选择应用程序(使用旧标识符)并将数据下载到您的 Mac。

    然后在您的设备上安装新应用(构建并运行它,然后退出)。在 Xcode 管理器(以及设备本身)中,您现在应该能够看到两个应用程序,一个具有每个捆绑标识符。选择具有新标识符的那个,选择上传并上传您从旧沙箱保存的数据文件。您现在应该可以访问新应用程序中的所有旧数据。如果您不想重新创建所有数据,非常方便。

    【讨论】:

      猜你喜欢
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多