1.首頁打開http://jspatch.com,注冊一個賬戶然后登陸。
2.選擇我的App,然后新增App,
3.添加App名稱和AppID
得到左邊的appKey,
4.點擊SDK下載,把下載好的SDK拖入項目中,添加依賴框架:TARGETS -> Build Phases -> Link Binary With Libraries -> + 添加 libz.dylib 和 JavaScriptCore.framework
5.在 AppDelegate.m 里載入文件,并調用 +startWithAppKey: 方法,參數為第一步獲得的 AppKey。接著調用 +sync 方法檢查更新
由于項目是由Swift語言編寫的,這里是Swift的接入方法,判斷用戶是否登陸,根據用戶ID來開啟開發預覽,圖中白色部分為appKey。
6.到JSPatch平臺我的App中選擇你需要修改的App,添加APP版本,
7.選擇需要修改的版本,上傳js文件,填寫補丁描述
我這里選擇是開發預覽選項,補丁只下發到項目里開啟了開發預覽模式的用戶。測試沒有問題后變成全量下發。
至此利用JSPatch平臺實現線上bug修復已基本完成,更詳細的接入文檔在這里http://jspatch.com/Docs/SDK。
關于main.js的編寫以及JSPatch的更多用法可以參考https://github.com/bang590/JSPatch/wiki。
由于我的項目是用Swift編寫的,中間遇到過不少的問題,下面貼出部分main.js的代碼
1.Swift項目里面,控制器名稱前面一定要加前綴。
2.只有繼承自 NSObject 的 Swift 類,其繼承自父類的方法和屬性可以在 JS 調用,其他自定義方法和屬性同樣需要加 dynamic 關鍵字才行。
3.方法的參數/屬性類型為 Swift 特有(如 Character / Tuple),則此方法和屬性無法通過 JS 調用。
4.方法名或者屬性名帶有“”的,一定要用“_”雙下劃線,比如:JPObject.__privateMethod()。
5.js里面獲取數組里面的值,最好分步實現,比如:self.selectDataSource().toJS()[indexPath.row()]這樣可能會獲取不到數組里面的值。
以上是我用JSPatch所遇到的一些問題,希望看客也能幫忙多補充些解決問題的方法,第一次寫簡書就寫這樣了。