蘋果近期給大部分接入 JSPatch 的 APP 發(fā)送了警告形导,提示下個(gè)版本去掉擁有動(dòng)態(tài)修改功能的代碼或框架捕透。
我們理解蘋果這個(gè)決定是為了杜絕 JSPatch 使用不當(dāng)導(dǎo)致的安全隱患以及惡意濫用论颅,在此建議大家在下個(gè)版本先去除 JSPatch朴下。
熱修復(fù)本身可以顯著提升 App 質(zhì)量很泊,對于 iOS 平臺是很有益的事情角虫,鑒于熱修復(fù)的需求量龐大,我們也在思考如何讓熱修復(fù)繼續(xù)發(fā)揮作用提升 iOS 平臺 APP 的質(zhì)量撑蚌,同時(shí)又可以解決這里面的安全和濫用的隱患上遥。
對此后續(xù) JSPatch 平臺會(huì)有以下升級改進(jìn):
1.強(qiáng)制腳本下發(fā)必須使用自定義 RSA 私鑰加密
這個(gè)功能 JSPatch 平臺一直提供,不過不是強(qiáng)制使用争涌,默認(rèn)會(huì)使用平臺統(tǒng)一的 RSA 私鑰加密粉楚,這里會(huì)有一定的安全隱患。強(qiáng)制用戶使用自己生成的 RSA 私鑰后亮垫,平臺本身完全無權(quán)限給用戶下發(fā)腳本模软,就算平臺被第三方惡意入侵也不會(huì)對 APP 有任何影響,不可能出現(xiàn)大規(guī)模安全事件饮潦。
2.禁止 SDK 接入
SDK 接入 JSPatch 后有能力對所有接入該 SDK 的 APP 下發(fā)腳本燃异,SDK 覆蓋面大以后,這里也是一個(gè)安全隱患继蜡,平臺會(huì)禁止 SDK 接入 回俐。
3.檢查每個(gè)下發(fā)的腳本逛腿,禁止調(diào)用私有 API,禁止下發(fā)大量代碼
這里是避免熱修復(fù)被濫用仅颇,利用動(dòng)態(tài)下發(fā)去做一些違反 Apple 規(guī)則的事情单默,同時(shí)讓熱修復(fù)只用于修復(fù) bug,而不是試圖改變整個(gè) APP 的功能忘瓦。
平臺升級后搁廓,接入平臺的 APP 不會(huì)再有任何安全隱患,同時(shí)也可以強(qiáng)制禁止濫用耕皮。
鑒于 React Native / weex / 小程序 等動(dòng)態(tài)化方案仍被允許境蜕,相信蘋果并不拒絕動(dòng)態(tài)方案,只是無法接受平臺上有任何安全隱患和繞過審核調(diào)私有 API 侵犯用戶隱私的行為凌停,平臺升級后可以幫助蘋果解決這些問題粱年,甚至如果蘋果愿意,我們可以開放后臺讓蘋果主導(dǎo)審核程序苦锨。
建議平臺用戶在 APP 下個(gè)版本去掉原有的 JSPatch SDK逼泣,在平臺升級后再接入新的 SDK,升級完成后我們會(huì)通知大家舟舒。
熱修復(fù)可以顯著提升 APP 的開發(fā)效率和質(zhì)量拉庶,有龐大的需求量,希望可以共建良好的熱修復(fù)環(huán)境秃励。
原文- bang JSPatch 平臺關(guān)于蘋果警告的解決方案