使用熱修復的第一步是需要把jsPatch加入到工程中,接入的過程在官方給出的skd中已經有詳細的說明,且借助于cocopods我們能更快速地完成接入過程,在這里把工程接入jsPatch的流程寫出來,并不是我太閑了,是因為關于熱修復打算寫三篇文章,第一篇文章把工程接入jsPatch的流程貼出來,第二篇文章是如何使用jsPatch進行修復,以及修復過程中如何調試。還有可能會出現的問題。最后一篇是自己在使用jsPatch中的感受,以及給正要使用jsPatch的一些誠懇的建議。
下面開始接入jsPatch
- 第一步:
我們需要使用cocopods把jsPatch代碼庫導入到工程中,在 podfile中添加命令,然后執行pod install就可以將文件導入到工程中。
pod 'JSPatchPlatform'
當然,如果你太閑了,也可以手動將jsPatch代碼庫導入到工程中。下載 SDK 后解壓,將 JSPatchPlatform.framework 拖入項目中,然后切記要勾選 "Copy items if needed",并確保 "Add to target" 勾選了相應的 target。
然后我們就完成了導入frameWork的第一步。
- 第二步我們需要把相關的依賴庫導入到工程中,和其他的大的sdk不同,jsPatch只需導入 libz.dylib和 JavaScriptCore.framework兩個依賴庫,具體操作為TARGETS -> Build Phases -> Link Binary With Libraries -> + 點擊加號后輸入我們要添加的依賴庫的名字,就能將依賴庫添加到工程中。
- 第三步是我們需要把在appdelegate文件中運行文件,在appdelegate中加入下面的代碼,我們就完成了jsPatch的接入。
#import <JSPatchPlatform/JSPatch.h>
@implementation AppDelegate
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ [JSPatch startWithAppKey:@"你的AppKey"];
[JSPatch sync];
...
}
@end
- 常見問題:
若使用 XCode8 接入,需要在項目 Capabilities 打開 Keychain Sharing 開關,否則在模擬器下載腳本后會出現 decompress error, md5 didn't match錯誤(如果是真機,則無論是否打開都沒問題):
keychain.png