iOS App熱修復的設計方案及簡單實踐

2021-07-22 06:15:02 字數 1599 閱讀 5504

首先,開發要提供熱修復的指令碼;這個對於本功能沒有開發工作;

其次,要將指令碼上傳到後台;所以後台需要提供上傳的操作頁面;

然後,終端裝置每次執行後,就去獲取上傳的指令碼檔案;

再然後,獲取到指令碼檔案後,呼叫jspatch引擎,執行指令碼檔案進行修復。

大體流程就是這樣。剩下的就是完善上述流程的各個環節;

為了安全,可以將指令碼加密,終端收到加密的指令碼的時候,再解密;

為了減少網路上檔案傳輸大小,可以將js檔案先zip壓縮下,終端獲取檔案後,先解壓在解密,最後執行指令碼;

這樣基本可以了額。上互動圖:

另外附上加密解密的一種實現方式,**於網路,奉獻給網路,演算法只是做了點修改,使其更通用:

[objc]view plain

copy

/*字串加密

*引數*plaintext : 加密明文

*key        : 金鑰 64位

*/- (nsstring *)encryptusedes:(nsstring *)plaintextkey:(nsstring *)key  

;  size_t numbytesencrypted = 0;  

cccryptorstatus cryptstatus = cccrypt(kccencrypt, kccalgorithmdes,  

kccoptionpkcs7padding,  

[keyutf8string], kcckeysizedes,  

iv,  

textbytes, datalength,  

buffer, bufferptrsize,  

&numbytesencrypted);  

if (cryptstatus == kccsuccess)   

free(buffer);  

return ciphertext;  

}  //解密

- (nsstring *)decryptusedes:(nsstring*)ciphertextkey:(nsstring*)key  

;  cccryptorstatus cryptstatus = cccrypt(kccdecrypt,  

kccalgorithmdes,  

kccoptionpkcs7padding,  

[keyutf8string],  

kcckeysizedes,  

iv,  

[cipherdatabytes],  

[cipherdatalength],  

buffer,  

bufferptrsize,  

&numbytesdecrypted);  

nsstring* plaintext =nil;  

if (cryptstatus == kccsuccess)   

free(buffer);  

return plaintext;  

}  

檔案解壓縮就不上**了~~

done.

iOS App熱修復的設計方案及簡單實踐

首先,開發要提供熱修復的指令碼 這個對於本功能沒有開發工作 其次,要將指令碼上傳到後台 所以後台需要提供上傳的操作頁面 然後,終端裝置每次執行後,就去獲取上傳的指令碼檔案 再然後,獲取到指令碼檔案後,呼叫jspatch引擎,執行指令碼檔案進行修復。大體流程就是這樣。剩下的就是完善上述流程的各個環節 ...

iOS實現熱修復的幾種方案

最近,在調研熱修復技術,也稱作熱更新技術。由於蘋果審核週期有時候比較長,這是公司無法忍受的,所以熱修復技術應運而生。經過查閱多方面的資料,進行如下總結,希望對大家有所幫助。現在比較流行的熱修復技術 一 使用jspatch進行熱修復。jspatch能做到通過js呼叫和改寫oc方法。最根本的原因是 ob...

超低延時行情系統的設計方案及實現方案

金融量化人才大批湧現 量化選股與多因子策略的國內落地 股指與兩融業務相繼推出 進入中國才短短十餘年的量化投資發展迅速。當前,國內量化體系正處於從低風險量化轉向主動量化的行業變革期 上述變化的發生離不開對應硬體 系統 與軟體 人才 的雙重公升級 硬體方面,擁有更低延時通道 更靈敏的系統響應 更穩定的交...