当 iOS 为应用程序安装更新时,究竟会发生啥?
Posted
技术标签:
【中文标题】当 iOS 为应用程序安装更新时,究竟会发生啥?【英文标题】:What precisely happens when iOS installs an update to an app?当 iOS 为应用程序安装更新时,究竟会发生什么? 【发布时间】:2011-03-07 22:19:57 【问题描述】:当您安装应用更新时,官方记录的行为是什么?
This question 提出了同样的问题,但answer 表示应用程序包已被替换,但所有其他文件夹均未触及,它没有提供任何文档。我有 reason 相信 app bundle 实际上没有被替换,所以我想确定一下。
请链接到文档!
【问题讨论】:
作为问答的后续。 Middaparka 的回答回答了问题的一部分——保留了哪些文件/数据。我试图弄清楚在这样的场景中调用了哪些委托方法(如果有的话): 1. 我们在 ios 4.x 上,后台处理开启 2. 应用程序进入后台(主页按钮) - applicationWillResignActive: & applicationDidEnterBackground: 被调用 3. 用户选择从 AppStore 更新 应用被杀了吗?是否调用了 applicationWillTeminate:?我猜(随着捆绑包被替换)该应用程序必须被杀死,对吧? @Pavel,见***.com/questions/3139588/… 【参考方案1】:来自iOS Application Programming Guide(请参阅“文件系统”中的“应用程序更新期间保存的文件”部分):
当用户下载应用程序时 更新,iTunes 将更新安装在 一个新的应用程序目录。那么它 将用户的数据文件从 旧安装到新安装 删除前的应用程序目录 旧安装。中的文件 保证以下目录 在更新期间保留 进程:
<Application_Home>/Documents
<Application_Home>/Library
虽然 其他用户目录中的文件可能 也被搬过来,你不应该 依靠他们在场后 更新。
您在 Why isn't my iPhone app bundle replacing the old one during an update? 问题中看到的是 Xcode 无法正确检测/推送更新资源到设备的问题,这是一种非常不同的情况。
【讨论】:
以上是关于当 iOS 为应用程序安装更新时,究竟会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章
当 iOS 应用程序确实进入后台时,TCP 和 UDP(使用多播)连接会发生啥情况
当 4.2 发布时,iPad iOS 3.2 应用程序未标记为针对 iOS 4 测试会发生啥?