引起4.3的原因有很多闷煤,下面列舉一些我總結(jié)的一些地方
影響4.3的原因
- 代碼
- 資源
- 域名接口
- 元數(shù)據(jù)
- 第三方
- 設(shè)備關(guān)聯(lián)
1-代碼
代碼是影響機審重要的部分,可以說占到4.3起碼一半的比例,兩份相同代碼或者高度相似的代碼驾胆,會直接被機審4.3渠啤。
1.1 首先我們談一個概念,叫做雷同基線惠爽。
雷同基線=游戲引擎+固有第三方庫+引用第三方平臺+自定義內(nèi)容雷同
游戲引擎:如cocos2d癌蓖、unity等
固有第三方庫:如AFNetworking、SDWebImage等
引用第三方平臺:如Bugly
自定義內(nèi)容雷同:如你自己封裝的一些常用工具類
1.2 下面談幾個關(guān)于代碼4.3的一些經(jīng)驗認知婚肆。
- 所以有的小伙伴就會遇到租副,兩份底層完全相同,也就是雷同基線高度相似较性,上層功能代碼又沒有多少用僧,一提一個4.3,還是換了賬號提交的赞咙,就很懵责循,這就是這個雷同基線造成的。
- 還有一些做游戲的小伙伴攀操,當下流行的方式一般是游戲項目+sdk,而游戲的源代碼院仿,例如:unity, 根據(jù)樓主的經(jīng)驗,蘋果是不會去檢測unity的代碼的,而主要檢測的就是c/c++/oc歹垫,甚至現(xiàn)在較為流行的swift二進制代碼剥汤,所以sdk的代碼量就占據(jù)了主導的地位,想要不被4.3排惨,sdk代碼的處理至關(guān)重要吭敢,而且一般公司都是一套sdk供給多個游戲接入,如果sdk代碼處理不好暮芭,就極易造成4.3
- 如果你提交的ipa鹿驼,被4.3了,而且還是機審的話辕宏,蘋果會記錄你的代碼到數(shù)據(jù)庫里蠢沿,所以沒處理好的情況下,你即使換賬號提交審核匾效,蘋果也會從數(shù)據(jù)庫里拿出來你被4.3的代碼跟你新提交的進行比較舷蟀。這里還有個小知識,如果你真的想換賬號面哼,怕代碼關(guān)聯(lián)野宜,最好的方式就是把原來的包從itc后臺刪掉,然后等14天魔策,14天之后蘋果會從數(shù)據(jù)庫里刪除記錄匈子。
4.現(xiàn)在有一些比較好的平臺能夠幫助我們比較ipa包,例如https://www.quicksdk.com/闯袒,你可以傳兩個ipa上去進行比較虎敦,不過這個平臺比較的應(yīng)該也只是簡單的,可想而知政敢,如果你這里的相似度都過不去其徙,那更別談蘋果的機審了。
ps:這里起碼要達到30%以下喷户,因為本來就只是簡單的比較唾那,蘋果機審更嚴格。
image.png
1.3 代碼如何處理
- 重構(gòu)重寫:底層能換的換掉褪尝,如常用的一些第三方庫(AF闹获、SDWeb、Masonry),上層實現(xiàn)方式也都改變下河哑,如原本可能用的是代理實現(xiàn)的回調(diào)避诽,可以改成block,綜上等等等吧璃谨,意思就是要徹底改成和以前代碼完全不一樣的沙庐,就像寫了一個新的代碼。
- 混淆:重構(gòu)重寫的方式,必然又浪費時間又浪費精力轨功,所以現(xiàn)在就出現(xiàn)了混淆的方式。市面上常見的混淆方式容达,大體上就是換名字(方法名古涧、類名、目錄名花盐、屬性名等)羡滑、加垃圾代碼,當然混淆的效果也要看具體的實現(xiàn)方式和混淆的質(zhì)量算芯。
關(guān)于混淆這里就談一點吧柒昏,如果蘋果,對比兩個工程中所有的字符串進行熙揍,就是我們硬編碼的字符串@“xxx”這個,那么一定也會判斷你這兩個工程的代碼高度相似职祷,所以混淆的質(zhì)量是很重要的。
未完待續(xù)......