App Store 支持增量更新後帶來哪些變化,對開發者有何影響?

增量更新,Delta update(Wikipedia 定義 http://en.wikipedia.org/wiki/Delta_update)


參考這個問題 ── App Store 支持增量更新嗎?── Apple 自 iOS 6 起引入非常優雅的解決方案,把大部分事情都做了,開發者面對增量更新並沒有新的煩惱,當然不需要自己提交多個增量包,也不影響審核的時間。

簡單地說,App Store 會讀取開發者所提交 application bundle 裡面的所有內容,然後對比此前的每一個舊版本,只取每一次對比不同的部分,然後生成不同的多個 patch package,給不同舊版本的用戶下載。

最顯著的變化是,假設 Numbers for iOS 有一個 bug fixed 新版本,完全包可能是 700MB,但增量更新版可能只有十多 MB,下載需要更少的時間使用更少的流量。不過依據具體情況不同,安裝時間可能會變長。

至於對開發者的影響,上面說了不需要特別做什麼,不過要想為用戶提供更好的體驗,有兩個提示和一個特別注意事項:

  • 別做不必要的文件更改 ── Do not make unnecessary modifications to files. Compare the contents of the prior and new versions of your app with diff or another directory comparison tool and verify that you"ve only changed what you expect within your app bundle.
  • 需要更改的內容最好獨立獨立放置,避免修改大尺寸的舊內容文件 ── Content that you expect to change in an update should be stored in separate files from content that you don"t expect to change. This reduces the size of the update package and increases its install speed.

  • Warning: 不要依賴不同的文件創建或修改時間,App Store 的 diff 對比會忽略 metadata,即前後同樣名字和大小的文件會被當成同一個 ── Your app should not rely on the creation and modification dates of files in your application bundle. When your app is updated using an update package, files are updated only if their content changes and will not be updated if only their metadata (e.g. creation and modification date) changes.

閱讀更多: Technical QA QA1779: Reducing Download Size for iOS App Updates


對用戶而言肯定是更新時間大大縮短,是好事。但對開發者、Apple而言將面臨諸多的問題:比如:版本號問題;需要考慮用戶可能存在各種不同的版本,因此開發者提交升級包後,Apple驗證時間和複雜度會增大。個人建議:將升級包分類,按平台級和產品級分類,這樣提交升級包後,處理可能會簡單些。


有遇到類似問題的同學么?

不同版本更新後發生啟動圖片異常。

問題是這樣的,以前我們使用的LanchImage.xib來配置啟動圖片,後面由於需求的調整又回到了原來在Assets裡面資源文件裡面載入的方式,有時更新版本的時候,啟動圖片會變成以前的老版本圖片,真是無語,這個可能是Apple增量更新的機制有些瑕疵導致。遇到類似問題的同學有好的建議或者解決方案么?


推薦閱讀:

為什麼會有人覺得黑蘋果很low?
iOS的UITabBarButton原生是怎麼實現跳轉的?
學習手機客戶端 iOS 或者安卓軟體的開發,有哪些好的建議(包括入門書籍,開發經驗,行業相關信息)?
大家對同步推的客戶端公然上了App Store怎麼看?
帶交互的 iOS 產品原型可以用什麼軟體製作?

TAG:AppStore | iOS開發 | 增量更新 |