本工具用于应对苹果对重复应用的审核(Guideline 4.3 Design Spam),避免苹果机审检测概率。
大神柯磊的第一个版本:https://github.com/klaus01/KLGenerateSpamCode
大神YuYang增加功能后的第二个版本:https://github.com/JourneyYoung/iOSMixProject
使用方法:
1.Xcode -> Product -> Scheme -> Edit Scheme,然后选中 Run -> Arguments -> Arguments Passsd On Launch
工程目录如下图:
2.Arguments Passsd On Launch下添加信息
每一项前面有复选框,勾选则表示改变此选项,不勾选则不改变
此处第三项先不勾选
- /Users/lique/Desktop/混淆代码/OV_new/OV/OV
- -modifyClassNamePrefix /Users/lique/Desktop/混淆代码/OV_new/OV/OV.xcodeproj OV>SP
- -modifyProjectName OV>SeaPlayer
- -ignoreDirNames HWDownloadManager
- -ignoreDirNames FMDB
- -ignoreDirNames ChatUI
- -ignoreDirNames AESCipher
- -ignoreDirNames ZFPlayer
(此处一定要写出所有的手动引入的库,或者Tools文件夹) - -handleXcassets
- -deleteComments
- -modifyAPIName
注意:Xcode配置下面几个选项的时候,有的地方用的是.xcodeproj的路径,有的地方用的是包含.xcodeproj的文件夹的路径
第一项:文件夹绝对路径
示例: /Users/lique/Desktop/混淆代码/OV_new/OV/OV
第二项:修改源代码类名前缀
格式:-modifyClassNamePrefix [工程文件 xcodeproj 绝对路径] [原前缀]>[新前缀]
示例:-modifyClassNamePrefix /Users/lique/Desktop/混淆代码/OV_new/OV/OV.xcodeproj OV>SP
第三项:修改工程名
格式:-modifyProjectName [原名称]>[新名称]
示例:-modifyProjectName OV>SeaPlayer
注意:Podfile被修改后需要手动pod install
第四项:生成垃圾代码
格式:-spamCodeOut [垃圾代码文件输出目录] [垃圾代码方法增加的参数名]
示例:-spamCodeOut /Users/wangxiushuai/Desktop/测试/WxsTestDemo1/Trash WxsTrash
注意:不知道为什么我的没有生成,可以结合`ChaosTool`使用(https://www.yaozuopan.top/index.php/71.html)
第五项:忽略这些文件夹
格式:-ignoreDirNames [忽略文件夹名称字符串]
示例:-ignoreDirNames 第三方库
第六项:修改xxx.xcassets文件夹中的 png 资源文件名
格式:-handleXcassets
第七项:删除工程目录下 .h .m .swift 文件中的注释和空行
格式:-deleteComments
第八项:改变api名字,注意是随机的,这个更改最好不要提交,只用来上架,一次性操作,否则可能增加后续维护的负担
格式:-modifyAPIName
3.Xcode Command+R运行ProjectMix项目,运行完毕文件名、前缀等信息就已经改变了
我遇到的问题:
1.我运行ProjectMix项目报错,提示"打开工程文件 [工程文件绝对路径].xcodeproj/project.pbxproj 失败:The file “project.pbxproj” couldn’t be opened because there is not such file" 然后我把第二项修改源代码类名前缀和第三项修改工程名分两次执行就没报这个错误了,即第一次执行第二项修改源代码类名前缀,然后再修改工程名
2.修改前缀时,运行完毕报错,前缀没有修改:我仔细检查了一下,原来是第二项路径最后应该是.xcodeproj,而不是.xcworkspace,太粗心了
然后删除pod,参考https://www.jianshu.com/p/e66b71122cfe,只需执行上面的第一个步骤和第二个步骤,然后pod init 安装pod即可