iOS代码混淆-KLGenerateSpamCode的简单使用 - 简书
2019-10-29 12:57:34 Author: www.jianshu.com(查看原文) 阅读量:655 收藏

1.0732019-03-06 18:36

KLGenerateSpamCode 下载地址: https://github.com/klaus01/KLGenerateSpamCode

git里面比较详细的介绍了KLGenerateSpamCode 的使用.此处我主要说一下使用当中遇到的问题.

设置

请看上图:

参数1.(必填) 源码文件夹绝对路径.此处路径应该是和.xcodeproj文件同位置的项目文件夹路径.如图:应该是绿框路径,而不是红框路径.

文件路径图

参数2.-modifyProjectName [原名称]>[新名称] 修改工程名 

参数3.-modifyClassNamePrefix [工程文件 xcodeproj 绝对路径] [原前缀]>[新前缀] 修改源代码类名前缀。程序会扫描源码文件夹绝对路径下的 .h .swift 文件,修改文件名,修改使用该类名的代码,修改工程文件中的文件名。文件名有原前缀的会修改成新前缀,如:原前缀ViewController变成新前缀ViewController;没有原前缀的会增加新前缀,如:ViewController变成新前缀ViewController。

参数4.-spamCodeOut [垃圾代码文件输出目录] [垃圾代码方法增加的参数名] 生成垃圾代码。程序会扫描源码文件夹绝对路径下的 .m .swift 文件中的类和方法,并生成category和extension文件,文件中的方法是在代码原方法的基础上增加垃圾代码方法增加的参数名参数。如:-spamCodeOut /dir AppLog ,会将- (void)setupKeys {}生成为+ (BOOL)setupKeysAppLog:(NSInteger)AppLog { return AppLog % 20 == 0; },会将- (void)foo:(NSString *)str {}生成为+ (BOOL)fooAppLog:(NSInteger)AppLog { return AppLog % 23 == 0; } 

自己使用这个方法,自动生成的代码会报错,总是少{}或者是数据类型不对.不知道是不是我操作不对,所以没有使用此方法

参数5.-ignoreDirNames [忽略文件夹名称字符串] 忽略这些文件夹,对-modifyClassNamePrefix、-spamCodeOut和-deleteComments参数有效。目前只会忽略源码文件夹绝对路径下一级的这些目录。如:/p/s -ignoreDirNames categorys,那么/p/s/categorys会被忽略,但/p/s/viewControllers/categorys不会忽略。

此处需要特别注意:一些系统的第三方,category类型的文件需要被忽略,否则有的位置会不识别,一定注意文件的层级关系

参数6.-handleXcassets 修改xxx.xcassets文件夹中的 png 资源文件名,同时也Contents.json文件中的关联名称,不会影响代码中使用图片。

改完之后项目中展示的图片文件名没有变,右键点击图片-show in finder后发现,图片文件的原名改成奇奇怪怪的了.如下图:

图片改名

参数7.-deleteComments 删除工程目录下 .h .m .swift 文件中的注释和空行。

整体需注意:以上7个参数不能同时修改

原因:使用参数2修改的项目名之后,参数1,参数3,参数4的绝对路径就会发生变化,所以需要修改后再使用.

最完美的方法是:先勾选参数1和参数2,执行一次,修改项目名完成之后,再修改文件路径,再勾选参数1,3,4,5,6,7.执行第二次,代码混淆成功.

以上都是个人遇到的问题,如有错误,请指出

© 著作权归作者所有,转载或内容合作请联系作者


文章来源: https://www.jianshu.com/p/d156814cabea
如有侵权请联系:admin#unsafe.sh