我需要更改iPhone应用程序的软件包标识符才能将其上传到应用商店。但是,我的Core Data存储中也有数据,即使在更改包标识符之后也要继续使用。然而,似乎捆绑标识符是iPhone如何知道应用程序是否彼此相同,所以我最终得到了两个不同的应用程序副本 - 有两个不同的核心数据存储 - 在我的手机上!我知道我可以通过Xcode组织器下载sqlite数据存储,如何确保我的数据传输到带有新的bundle标识符的新app包?
答案 0 :(得分:1)
对于OS4的一些例外情况,每个应用程序(由它的BI识别)都有自己的手机隔离存储。 如果你真的需要改变它(也将禁用“旧版本”买家的免费更新),你必须找到一种外部迁移方式。
许多应用提供某种“备份”(在PC / MAC或其他方面)。 我们为客户所做的是建立一个允许“短时数据存储”的网站。 这样旧的应用程序就可以上传数据 - 而新的应用程序会将数据加载下来。 当然,这意味着首先为“导出”更新旧应用程序。
但是“你的应用程序存在于它自己孤立的世界中”的想法也意味着你无法访问其他应用程序的数据。 从安全角度来看,这很有意义。 为了构建应用程序想要共享数据的“应用程序套件”,这很糟糕。 但苹果在OS4中为此做了一些补充 - 我认为这对你的情况不会有帮助,因为“分享应用程序”也必须是特别设计的。
答案 1 :(得分:1)
我知道这个问题已经很老了,但我在寻找同一问题的答案时才注意到它,并认为它仍然可能对其他人有用。原来的海报半回答了他自己的问题,但没有采取下一步措施。
如果您尚未在应用商店中发布应用并且想要更改套件标识符,则可以使用Xcode管理器将CoreData商店从一个沙箱复制到另一个沙箱,如上所述。显然,这只适用于您自己的设备(我认为这是原始海报想要做的);如果他们购买了您的应用,此流程将不允许将数据传输到其他用户的设备上,因此请勿在应用发布后更改您的捆绑包标识符。
首先,在您的设备上运行旧应用程序(具有旧包标识符的应用程序)。在Xcode组织器中,选择您的设备,然后选择应用程序,然后选择应用程序(使用旧标识符)并将数据下载到您的Mac。
然后在您的设备上安装新应用程序(构建并运行它,然后退出)。在Xcode组织器(以及设备本身)上,您现在应该能够看到两个应用程序,每个应用程序包含一个包标识符。选择具有新标识符的那个,选择上传并上传从旧沙箱保存的数据文件。您现在应该可以访问新应用中的所有旧数据。如果您不想重新创建所有数据,则非常方便。