標籤:ova 修複 one 體驗 icloud 更新 time com 通過
iOS APP的上架審核一直是個令人困擾的問題,動輒一個星期甚至半個月的審核時間,往往會耽誤產品的運營計劃。
尤其是,審核過程中難以避免的會被蘋果拒絕,然後又是一個周期,很是痛苦。
除了在提交審核前,儘可能的保證產品沒有Bug,以及充分研究蘋果的app審核政策外,從技術開發層面如果能解決熱更新問題,則再好不過了。
所以我簡單整理了以下一些技術,可用於產品的內部更新,而不用重新提交給蘋果審核。如果有更多的方案,或是錯誤,也請提出。
1. Hybrid App
混合架構,藉助於Html,JS等前端技術,實現產品的即時更新。通過建立中介層,搭建前端和Native的橋樑,實現相互連信和資料共用。
常見的混合架構有:Cordova(原PhoneGap),ReactJs/ReactNative以及國內的一些技術(Html5+Runtime,APICloud等,技術原理上應與Cordova是相同的)
這種技術的一個明顯的優勢是,不需要針對多平台做多次開發。但也並非萬能,除了體驗上的區別外,一些大的功能還是不可避免的要升級用戶端的。比如說Cordova,
是以外掛程式的方式提供原生互動能力的,如果外掛程式不足以支撐新功能,則需要升級版本,更新外掛程式。
2. JSPatch
JSPatch利用了OC的動態特性,在運行時可以獲得類對象和方法,也可以修改方法的實現,可以動態添加新類和新方法,以此實現對代碼的更新。
不過這種方法不便於新功能的開發和大範圍的改動,做一些修複性的更新還是可以的。
稍詳細的介紹可參考簡書上的這篇文章http://www.jianshu.com/p/8cec322531ae。後續有時間的話,我會深入瞭解一下JSPatch的源碼。
Github上的中文使用說明:https://github.com/bang590/JSPatch/blob/master/README-CN.md
3. xcode 6 之後,蘋果開放了 ios 的動態庫編譯許可權。所謂的動態庫,其實就是可以在運行時載入。正好利用這一個特性,用來做ios的熱更新。【參考 http://www.2cto.com/kf/201507/417661.html】
這種方法通過更新動態連結程式庫的方式,提供熱更新方法。不過這種方法我沒有驗證過(包括lua指令碼的方法,也沒有瞭解過),對其可用性易用性不妄加評論。
4.Cocos2D 適用於遊戲開發。
以上內容只是簡單的整理,並非所有的技術我都得以驗證過,如有謬誤還請提出。後續會對這些技術一一分析比較。
iOS熱更新的幾種方案