我有一个xcode项目,有4个目标(2个应用程序,1个iPhone和1个iPad版本)。我最近实现了Core Data轻量级迁移。
我目前只测试两个应用程序,iPhone版本,称为应用程序A和应用程序b。我可以在我的iPhone上运行应用程序A的当前应用商店版本,然后安装新版本的应用程序A来测试轻量级迁移。它工作得很好,没问题。
然后,我对应用B做了同样的尝试,我可以在我的iPhone上安装应用B的当前应用商店版本,没有问题。但是,当我尝试在我的iPhone上安装新版本的应用程序B时,我每次都会得到以下错误(或它的变体):"putpkt: write failed, broken pipe"
我很困惑,因为两个当前版本在同一个项目中,每个配置(调试,发布,发行)都有完全相同的设置。
我在这个论坛和任何地方读到的每个帖子都有这个错误,建议删除应用程序,重新启动设备,重新启动xcode等。当然,我可以让它那样工作。但是我不能用这种方式测试我的迁移。如果我从设备上删除旧版本的应用程序,什么也不会迁移!
这件事真让我抓狂。这两个App本来是在两个不同的项目中,我把App B作为一个新的目标添加到App A项目中——这是我唯一能想到的,因为我觉得我已经看遍了所有的东西。如果有人能帮我解决这个问题,我将非常感激。我对发送一个无法测试的数据库更新感到恶心——我不能冒着破坏人们数据的风险,尤其是当我在当前版本之前没有提供备份选项的时候。嗯。
编辑:当我尝试在设备上运行App B而不更新时,我经常会得到以下错误:启动可执行文件错误…不知道怎么跑。试试"help target".
编辑:我想我遇到这个麻烦是因为我重命名了应用程序b的产品名称。我认为这改变了捆绑包,不允许我迁移数据。我会尝试改变它回来,并发布更新。在此期间,合并包似乎对应用程序A工作得很好。
确保新项目和原始项目具有相同的产品名称和相同的数据模型名称为我解决了这个问题。