uniapp打包iOS应用并通过审核:代码混淆的终极解决方案 ✨
摘要
本篇博客将教你如何使用 JavaScript-obfuscator 插件来一键发行和混淆 iOS 上的 uniapp 代码。通过安装插件、创建运行脚本,并执行混淆操作,你将能够轻松通过审核,提高应用程序的安全性。🔒
引言
在将 uniapp 项目打包并上传到 iOS 应用市场时,我们经常会遇到一个问题,即代码重复率过高导致无法通过审核。为了解决这个问题,我们可以使用 JavaScript-obfuscator 插件对代码进行混淆,以绕过审核限制。本篇博客将详细介绍安装插件、创建运行脚本以及执行混淆操作的步骤,并附有代码案例演示。
正文
第一步:安装 JavaScript-obfuscator 插件
在项目终端中执行以下命令来安装 JavaScript-obfuscator 插件:
npm install javascript-obfuscator -g
安装完成后,你可以通过以下命令检查插件版本号,确认是否安装成功:
javascript-obfuscator -v
第二步:创建运行脚本
在项目根目录下创建一个 build.bat 脚本文件,文件内容如下:
C:
javascript-obfuscator C:\Users\zy\Desktop\xiangmu\demo\unpackage\dist\build\mp-weixin\pages --output C:\Users\zy\Desktop\xiangmu\demo\unpackage\dist\build\mp-weixin\pages && javascript-obfuscator C:\Users\zy\Desktop\xiangmu\demo\unpackage\dist\build\mp-weixin\components --output C:\Users\zy\Desktop\xiangmu\demo\unpackage\dist\build\mp-weixin\components
以上代码表示对指定文件夹中的文件进行混淆,并将混淆后的文件输出到指定目录。如果还需要混淆其他文件代码,可以直接在命令后面添加相应的混淆操作。
第三步:执行运行脚本
双击 build.bat 文件,即可执行混淆操作。混淆成功后,命令弹窗会自动关闭。
可以看出上述混淆工具混淆还是很繁琐的,我们推荐另外一个好用简单方便的小工具-ipaguard。
二、使用
class-dump在dump从appstore上下载下来的app的时候,首先是需要对app进行砸壳处理的,具体的砸壳工具是ipaguard、clutch等等。
以ipaguar为例,
使用ipaguard来对程序进行加固
代码加固是进一步保护应用的一种方式,通常通过特定平台来对应用进行加固处理。
这边以ipaguard为例,目前还在免费阶段,想薅羊毛的快快试试。
Ipa Guard是一款功能强大的ipa混淆工具,不需要ios app源码,直接对ipa文件进行混淆加密。可对IOS ipa 文件的代码,代码库,资源文件等进行混淆保护。 可以根据设置对函数名、变量名、类名等关键代码进行重命名和混淆处理,降低代码的可读性,增加ipa破解反编译难度。可以对图片,资源,配置等进行修改名称,修改md5。只要是ipa都可以,不限制OC,Swift,Flutter,React Native,H5类app。
![](https://static001.geekbang.org/infoq/9e/9e73ea7203989e7e5cec7d84d61f0a6b.png)
所以就要使用到混淆器,混淆器是把里面的代码变量等信息进行重命名,这样可读性会变得非常差,接着,
到这里,我们完成了对代码的混淆,但是还没有进行加固,防止反编译,所以,请往下看
然后导入自己的包就可以了,这里是流水式的走下来,所以只需要导入和导出就可以了,
![](https://static001.geekbang.org/infoq/41/414832e29f6a779ca82c8f29ec6b5152.png)
添加单个文件,选择好刚刚混淆后的包,然后你做的事情就是等,等待上传完–加固完–下载完–已完成,当到已完成的时候,说明这里已经可以导出了,导出需要前面提到的自己创建的签名,这里可是会用到的,如果不用,则包安装包可能会出现问题
选择导出签名包,选择签名文件,输入密码,然后点击开始导出
![](https://static001.geekbang.org/infoq/09/098a634c61ceb911166fd0ce3374e3bd.png)
导出的包是经过混淆,经过加固比较安全的包了
总结
通过本篇博客介绍的步骤,你可以轻松地一键发行和混淆 iOS 上的 uniapp 代码,从而通过审核并提高应用程序的安全性。希望本篇博客对你有所帮助。💪
参考资料
希望本篇博客对你有所启发,祝你在uniapp开发中取得更多成果!🚀🎉