新的iPhone应用程序作为旧应用程序的更新,相同的Bundle标识符,Xcode给出错误

时间:2010-12-19 14:22:58

标签: iphone xcode

我目前在App Store和我的设备上有一个应用程序,为了这篇文章MyApp1,名为com.myname.myapp

在过去的几周里,我一直在从头开始重写整个应用程序,同时添加了许多新功能,作为新的Xcode项目与旧的一起。就iTunes Connect和iOS而言,它应该仍然是旧的(版本)应用程序的更新。

在测试期间,我让我的设备和模拟器中的两个应用程序并排运行,新应用程序使用包标识符com.myname.myapp2,一切正常。

但是现在应用程序已经完成,我希望它覆盖/更新我的设备和模拟器中的旧应用程序,以查看从旧应用程序导入数据的代码是否按预期工作。 因此,我将Info.plist中新应用的包标识更改为com.myname.myapp,并在Xcode中选择了Build and Debug。但是,如果仍然使用相同的Documents文件夹,而不是新应用程序覆盖旧应用程序,那么它可以导入旧数据,正如我预期的那样,我收到了错误。

这就是我正在做的事情和发生的事情:

  • 模拟器:Reset cache
  • MyApp1的Xcode:Clean All Targets
  • MyApp1的Xcode:Build and Run(使用Release配置)
  • MyApp1:使用应用程序更改一些NSUserDefaults数据,稍后应由MyApp2导入的更改(使用不同的数据模型)
  • MyApp1的Xcode:Stop
  • MyApp2的Xcode:Clean All Targets
  • MyApp2的Xcode:Build and Run(使用Release配置)

以下错误显示3次,每次在MyApp2的控制台中显示不同的类:

Unknown class [class referenced in the MyApp1 MainWindow.xib file] in Interface Builder file.

因此,由于某些原因,并非所有文件都被覆盖,因为错误是由旧版本的MainWindow.xib加载引起的。

(相对不感兴趣的堆栈框架:http://cl.ly/1F1w1J1u3t1C2U2o2D2C

有没有人碰巧知道我是如何做到这一点的,我怎么能有一个本质上新的应用程序覆盖我的设备和模拟器中的旧应用程序,所以它仍然会使用相同的Documents文件夹?

提前致谢!


我已经尝试过的事情,正如其他人所建议的那样,但没有帮助:

  • 重新启动Xcode
  • 重新启动计算机
  • 从Xcode项目文件夹中删除build文件夹
  • Touch ing MainWindow.xib

1 个答案:

答案 0 :(得分:3)

使用Xcode管理器窗口将旧应用程序的Documents文件夹下载到Mac。然后完全删除旧应用程序,安装新应用程序。最后使用Xcode管理器恢复Documents文件夹备份。