Unity导出的ios马甲包代码混淆
修改自KLGenerateSpamCode
https://github.com/klaus01/KLGenerateSpamCode
使其对应Unity导出的Xcode工程
懒得重新fork了,在此感谢原作者
一下为原说明
本工具用于应对苹果对重复应用的审核(Guideline 4.3 Design Spam),避免苹果机审检测概率。
$ ./GenerateSpamCode \
/Users/kelei/Documents/work/git/projectName/source \
-deleteComments
/Users/kelei/Documents/work/git/projectName/source
)原名称-Swift.h
、Podfile
、原名称-Bridging-Header.h
、源码文件夹绝对路径
、原名称.xcodeproj
和原名称.xcworkspace
的名称和内容。Podfile
被修改后需要手动pod install
源码文件夹绝对路径
下的 .h .swift 文件,修改文件名,修改使用该类名的代码,修改工程文件
中的文件名。文件名有原前缀
的会修改成新前缀
,如:原前缀ViewController
变成新前缀ViewController
;没有原前缀
的会增加新前缀
,如:ViewController
变成新前缀ViewController
。源码文件夹绝对路径
下的 .m .swift 文件中的类和方法,并生成category
和extension
文件,文件中的方法是在代码原方法的基础上增加垃圾代码方法增加的参数名
参数。如:-spamCodeOut /dir AppLog
,- (void)setupKeys {}
>- (void)setupKeysAppLog:(NSString *)appLog {}
,- (void)foo:(NSString *)str {}
>- (void)foo:(NSString *)str appLog:(NSString *)appLog {}
-modifyClassNamePrefix
和-spamCodeOut
参数有效。目前只会忽略源码文件夹绝对路径
下一级的这些目录。如:/p/s -ignoreDirNames categorys
,那么/p/s/categorys
会被忽略,但/p/s/viewControllers/categorys
不会忽略。xxx.xcassets
文件夹中的 png 资源文件名,同时也Contents.json
文件中的关联名称,不会影响代码中使用图片。使用 ImageMagick 对 png 图片做轻量压缩,及不损失图片质量,又可改变图片文件 hash 值。方法:
brew install imagemagick
find . -iname "*.png" -exec echo {} \; -exec convert {} {} \;
就我 2017-11 月的提交情况来看,只需要做如下修改就可以上马甲包了。