日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSPatch使用

發布時間:2023/12/29 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSPatch使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JSPatch 是一個開源項目(Github鏈接),只需要在項目里引入極小的引擎文件,就可以使用 JavaScript 調用任何 Objective-C 的原生接口,替換任意 Objective-C 原生方法。目前主要用于下發 JS 腳本替換原生 Objective-C 代碼,實時修復線上 bug。

?

集成 SDK
1、通過 cocoapods 導入
在 podfile 中添加命令:
pod 'JSPatchPlatform', :git => 'https://github.com/bang590/JSPatchPlatform.git'
再執行 pod install 即可。
2、手動導入

下載 SDK 后解壓,將** JSPatchPlatform.framework** 拖入項目中,勾選 "Copy items if needed",并確保 "Add to targets" 勾選了相應的 target。

pods 導入或手動導入SDK后添加依賴框架:TARGETS -> Build Phases -> Link Binary With Libraries -> + 添加libz.dylib(Xcode7之后是libz.tbd)和 JavaScriptCore.framework。

測試使用

1、測試本地腳本

本地測試?AppDelegate.m?按如下寫法即可,SDK 提供了+testScriptInBundle?方法用于開發狀態下測試。

然后在我們的 demo 中新建一個?empty?文件,叫 main.js,注意這是 JSPatch 平臺規范,js 腳本文件名必須是 main.js。

?

?

現在我們就可以通過在 main.js 寫 js 修復 demo 中的 bug,代碼如下:

defineClass('ViewController', {createJsPatchDemo: function() {console.log("全市污水處理廠在線監控系統9項指標運營維護項目");}, });

?

2、線上版本測試

熱修復針對的是線上版本,所以本地測試只是驗證可行性,重要的還是線上 bug 的修復。下面我們進行線上測試。
到?JSPatch官網?注冊,登錄,我的 App,添加 App,獲取 app key,添加 App 版本,發布補丁.

?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// Override point for customization after application launch./** */[JSPatch startWithAppKey:@"1b823abb1c059409"];[JSPatch setupRSAPublicKey:@"-----BEGIN PUBLIC KEY-----\nMIG0GKBgQDo9OLb7RYBCsST0Nq7EPRmfcAt\nZ4W6dhPE3Lrew+0JfiUCiTt2ruhPXQLSJN2OcGKVV4eXXR1KxI6BC3yBZvoXF\n/tQ/rIsMgknHMYGnh817tYAq/SSLu6BhfygK40\n6Ixyha1mbfQJwIDAQAB\n-----END PUBLIC KEY-----"];// [JSPatch setupDevelopment];[JSPatch sync];//檢查補丁更新/*用于發布前測試腳本。先把腳本放入項目中,調用后,會在當前項目的 bundle 里尋找 main.js 文件執行測試完成后請刪除,改為調用 +startWithAppKey: 和 +sync[JSPatch testScriptInBundle];*/self.window =[[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];self.window.backgroundColor=[UIColor whiteColor];[self.window makeKeyAndVisible];ViewController *vCont=[[ViewController alloc]init];UINavigationController *nav =[[UINavigationController alloc]initWithRootViewController:vCont];self.window.rootViewController = nav;return YES; }

注意:+testScriptInBundle不能與+startWithAppKey:一起調用,+testScriptInBundle只用于本地測試,測試完畢后需要去除,項目中的 main.js 文件也要刪除(可拷貝一份至桌面留作上傳的補丁使用)。另外,通過 JSPatch 平臺上傳的腳本文件都會保存在七牛云存儲上,而七牛云存儲的下載使用的是 http 協議,因此需要在項目的 info.plist 文件中添加如下字段.

通過測試如果項目中其他沒有網絡請求,最新的“補丁”不會被及時下載更新。

?

有OC轉換工具:轉換JS:?轉換JS

平臺原理詳解:如何使用補丁語言:補丁語言

?

總結

以上是生活随笔為你收集整理的JSPatch使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。