为啥我的 iPhone 应用程序包在更新期间没有替换旧的应用程序包?

Posted

技术标签:

【中文标题】为啥我的 iPhone 应用程序包在更新期间没有替换旧的应用程序包?【英文标题】:Why isn't my iPhone app bundle replacing the old one during an update?为什么我的 iPhone 应用程序包在更新期间没有替换旧的应用程序包? 【发布时间】:2011-03-05 21:22:40 【问题描述】:

我从一个以 foo.png 为资源的应用开始,并安装了该应用(在模拟器中或在设备上)。如果我删除foo.png,进行干净的构建等并安装,那么它仍然显示在模拟器或设备上的包中!

但我知道在复制到模拟器或设备之前,该文件不在捆绑包中(例如:

    我可以看到它不在构建文件夹中。 如果我从模拟器或设备中删除应用程序,然后安装,那么foo.png不会显示在模拟器或设备上。

所以看来更新的时候并没有替换app bundle;相反,它只复制新文件并替换更新的文件。 (我可以确认它确实,事实上,正确地复制和替换文件。)

为什么不替换整个 app bundle?

【问题讨论】:

...和“菜单:构建:清除所有目标”不起作用?当我遇到类似问题时,它对我有用... 不,很遗憾,我已经彻底清理了所有东西并重建了。 【参考方案1】:

如果您使用临时构建通过 iTunes 更新您的应用程序,您将看到您的 .app 包将被完全替换,并且旧资源(例如原始帖子中描述的 foo.png 文件)将被删除。

【讨论】:

【参考方案2】:

重置模拟器,进入菜单然后点击重置模拟器。我总是对设备上的数据库有这个问题。您必须在设备上将其删除。只是我也经历过的一个怪癖。

【讨论】:

但这意味着我在更新我的应用程序时无法删除任何文件 - 这是不对的! @Jesse 但这就是当前构建和部署过程的工作方式。如果您认为当前行为不正确,则应提交错误。 bugreport.apple.com @fluchtpunkt,记录在哪里? 请记住,我的意思是从包中删除文件,不是Documents 文件夹中删除文件 杰西,我也见过这个怪癖。 “重置模拟器”是在模拟器上解决此问题的方法。

以上是关于为啥我的 iPhone 应用程序包在更新期间没有替换旧的应用程序包?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 AsyncTask 在应用程序启动期间没有执行?

为啥我的状态之一在我的测试期间没有被触发

如何防止流星应用程序与人行横道包在Android编译期间崩溃?

为啥我的应用程序图标没有出现在 iphone 的一个系统功能中?

为啥在更新事务期间休眠调用删除?

支持 iPhone 3G