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

2021-07-07 10:08:51 字數 1495 閱讀 9419

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

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

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

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

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

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

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

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

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

/*字串加密

*引數*plaintext : 加密明文

*key : 金鑰 64位

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

; size_t numbytesencrypted = 0;

cccryptorstatus cryptstatus = cccrypt(kccencrypt, kccalgorithmdes,

kccoptionpkcs7padding,

[key utf8string], kcckeysizedes,

iv,textbytes, datalength,

buffer, bufferptrsize,

&numbytesencrypted);

if (cryptstatus == kccsuccess)

free(buffer);

return ciphertext;

}//解密

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

; cccryptorstatus cryptstatus = cccrypt(kccdecrypt,

kccalgorithmdes,

kccoptionpkcs7padding,

[key utf8string],

kcckeysizedes,

iv,[cipherdata bytes],

[cipherdata length],

buffer,

bufferptrsize,

&numbytesdecrypted);

nsstring* plaintext = nil;

if (cryptstatus == kccsuccess)

free(buffer);

return plaintext;

}

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

done.

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

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

iOS實現熱修復的幾種方案

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

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

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