spamCode Git下載地址
https://github.com/oneyian/SpamCode
iOSMixProject Git地址
https://github.com/JourneyYoung/iOSMixProject
KLGenerateSpamCode
https://github.com/klaus01/KLGenerateSpamCode
前言:這三種工具是為了應對應用的審核(Guideline 4.3 Design Spam),避免蘋果機審檢測概率。spamCode
和iOSMixProject
都是基于KLGenerateSpamCode
改進,用法相同
主要功能
- 修改工程名
- 修改類名前綴
- 掃描工程中的代碼,生成同等數量的 Category 文件,文件中及是同等方法數量的垃圾代碼。
- 修改 xxx.xcassets 文件夾中的 png 資源文件名。
- 刪除代碼中的所有注釋和空行。
參數說明
(必填) 源碼文件夾絕對路徑(如:/Users/kelei/Documents/work/git/projectName/source)
-modifyProjectName [原名稱]>[新名稱] 修改工程名。程序會修改原名稱-Swift.h、Podfile、原名稱-Bridging-Header.h、源碼文件夾絕對路徑、原名稱.xcodeproj和原名稱.xcworkspace的名稱和內容。Podfile被修改后需要手動pod install
-modifyClassNamePrefix [工程文件 xcodeproj 絕對路徑] [原前綴]>[新前綴] 修改源代碼類名前綴。程序會掃描源碼文件夾絕對路徑下的 .h .swift 文件,修改文件名,修改使用該類名的代碼,修改工程文件中的文件名。文件名有原前綴的會修改成新前綴,如:原前綴ViewController變成新前綴ViewController;沒有原前綴的會增加新前綴,如:ViewController變成新前綴ViewController。
-spamCodeOut [垃圾代碼文件輸出目錄] [垃圾代碼方法增加的參數名] 生成垃圾代碼。程序會掃描源碼文件夾絕對路徑下的 .m .swift 文件中的類和方法,并生成category和extension文件,文件中的方法是在代碼原方法的基礎上增加垃圾代碼方法增加的參數名參數。如:-spamCodeOut /dir AppLog,- (void)setupKeys {}>- (void)setupKeysAppLog:(NSString *)appLog {},- (void)foo:(NSString *)str {}>- (void)foo:(NSString *)str appLog:(NSString *)appLog {}
-ignoreDirNames [忽略文件夾名稱字符串] 忽略這些文件夾,對-modifyClassNamePrefix和-spamCodeOut參數有效。目前只會忽略源碼文件夾絕對路徑下一級的這些目錄。如:/p/s -ignoreDirNames categorys,那么/p/s/categorys會被忽略,但/p/s/viewControllers/categorys不會忽略。
-handleXcassets 修改xxx.xcassets文件夾中的 png 資源文件名,同時也Contents.json文件中的關聯名稱,不會影響代碼中使用圖片。
-deleteComments 刪除工程目錄下 .h .m .swift 文件中的注釋和空行。
使用案例(以spamCode為例)
使用前
-
下載spamCode以及你要混淆的項目
image.png
-
打開spamCode工程切換到配置參數的地方,具體步驟如下
image.png
image.png -
參數配置(參數說明見上)
image.png
(1).修改類名: -modifyClassNamePrefix [xcodeproj文件的絕對路徑,不是pod安裝后的那個打開文件] [舊類前綴]>[新類前綴], LXW是舊類前綴
,XX是新類的前綴
(2)修改方法名:-chageAPIPrefix [舊方法名前綴]>[新方法名前綴] 注意,前綴要有“”才能被識別,如果之前工程中沒有xx下劃線開頭來命名方法的,此項不要勾選,Demo_是原先方法名的前綴
,LXW_是新方法名的前綴
(3)修改工程的名稱:-modifyProjectName [原工程名]>[新工程名]
(4)垃圾代碼生成:-spamCodeOut /Users/lixuewen/Desktop/confusion/confusionDemo_test/垃圾代碼 垃圾代碼文件夾路徑 [垃圾代碼參數] ccc就是垃圾代碼的參數
(5) 如果用到了修改項目名,最好分兩批先修改方法名等,最后在修改項目名,因為修改項目名稱之后其他的絕對路徑就發生了變化,會報錯。如果碰見報錯或者修改不成功,就重新填寫參數,那個失敗了就單獨怕那個
注:
- 點擊colse,運行項目,查看效果
修改前
修改后(生成的垃圾代碼需要手動拖拽)
如果出現了下圖的報錯
解決方法:
cmd + shift + k
cmd + option + shift + k
重啟 Xcode