在向应用商店提交应用更新(通过iTunes Connect?)时,更新是否必须是完整的二进制文件?更新是否可以以补丁的形式出现?如果某个应用程序的第二个版本与之前版本共享大量资产和逻辑,那么所有逻辑/资源是否会完全重新安装?
答案 0 :(得分:3)
正如大家在我之前所说的那样Apple没有提供热补丁原生应用程序的方法,而且它有一个明确的限制 - “没有远程代码注入”。
我唯一可以补充的是,使用javascript平台的混合应用程序允许您远程替换JS文件,因此您可以实际远程更改功能。(无需发布新版本)我见过的其他解决方案是在灰色区域,允许您远程运行Lua Script以更改应用功能。
我们@ Rollout.io采用了不同的方法,我们允许您在不对本机应用程序进行代码注入的情况下对生产应用程序进行热补丁,您可以阅读有关该技术如何工作的更多信息here
部署旨在帮助移动开发人员解决生产质量问题,热补丁生产应用,调试生产环境,添加/删除分析等。
披露:我来自Rollout.io团队。
答案 1 :(得分:2)
iOS 6现在支持增量应用更新。这真棒,让Real Racing 3(1.1GB应用程序)更新大约30秒而不是20分钟!
https://developer.apple.com/library/ios/#qa/qa1779/_index.html
问:如何为用户减少应用更新的下载大小 已经安装了以前的版本?
答:从iOS 6开始,应用程序商店将自动生成一个 更新提交给商店的所有新版应用程序包。 此软件包已针对从一个版本更新到的应用程序进行了优化 另一个,并包含在之前更改过的文件 应用程序的版本和应用程序的新版本,不包括文件 没有改变。
如果最佳使用,更新包的数量要小得多 下载比应用程序的完整包更新将安装 更快速。此外,在许多情况下,此机制允许更新 大型应用程序可通过移动网络下载应用程序 下载受到大小限制。
除了新内容之外,更新包还包含说明 关于如何将应用程序的先前版本转换为新版本 该应用程序。将添加新文件,将替换已修改的文件 与他们更新的对应物,删除的文件将被删除为 这种转变的一部分。就开发人员和用户而言 关注,这个过程是完全透明的 更新后的应用程序将与完整下载无法区分 相应的应用程序更新版本。
上述链接提供的开发人员的进一步说明。
答案 2 :(得分:1)
没有补丁。它作为一个完整的只读包安装。旧捆绑包将替换为新捆绑包。
保留应用程序数据(即文档文件夹,NSUserDefaults)。