本文引导您使用移动应用安全加固对 iOS App 进行加固。
使用须知
使用 mPaaS 应用安全加固前请阅读以下使用须知,并保证您的工程满足相关要求,否则可能导致加固失败或加固效果受损。
建议相关待加固代码采用 C、C++ 编写。iOS 加固对 C、C++ 的支持更好更稳定,此外部分支持 Ojective-C,不支持 Swift。
加固会带来性能损耗和理论上的稳定性风险提高,建议只对需要保护的核心代码进行加固,将需要保护的 C、C++ 代码抽离到一个单独的 Framework 中,然后进行加固。
目前支持 X86/M1 机器。您可从屏幕角落的苹果菜单中选取 关于本机,查看 Mac 的概览信息,包括处理器信息。如果显示为 Intel 处理器即表明您的 Mac 为 X86 架构。
目前支持 Xcode 14.1/14.2/15.0.1/15.3/15.4。由于 iOS 加固会对编译器进行处理,需要对特定 Xcode 进行适配,所以使用 iOS 加固时需要使用特定版本的 Xcode。
重要自 2024 年 4 月 29 日起,上传到 App Store Connect 的 App 必须是使用 Xcode 15 为 iOS 17、iPadOS 17、Apple tvOS 17 或 watchOS 10 构建的 App。
请确保 App 工程的工作空间设置为 New Build System。检查路径为 Xcode > File > Project Settings > Build System。
操作步骤
配置环境文件。按照以下方法生成
MSAConfig.json
文件,并放到$HOME
目录下。在 Mac 机器下打开命令行输入echo $HOME
,即可得到$HOME
目录,使用时替换为真实值即可,字段如下:{ "appId": "应用 appId", "workspaceId": "应用 workspaceId", "tenantId": "应用 tenantId", "accessKeyId": "阿里云账号 accessKeyId", "accessKeySecret": "阿里云账号 accessKeySecret", "license": "目前空即可", "domain":"xxx" }
说明domain 的值为 cn-hangzhou。
其他字段值获取方式请参考 iOS 加固配置文件信息获取方式。
安装加固工具。
下载加固工具,解压后进入目录 tools> xcode。
说明xcodeplugin-arm64-5.10.0.zip 适用于 Xcode 15.3/15.4 + Mac M1。
xcodeplugin-x86_64-5.9.0.zip 适用于 Xcode 15.0.1 + Mac X86。
xcodeplugin-arm64-5.9.0.zip 适用于 Xcode 15.0.1 + Mac M1。
xcodeplugin-x86_64-5.7.2 适用于 Xcode 14.1/14.2 + Mac X86,操作系统建议 13.2.1。
xcodeplugin-arm64-5.7.2 适用于 Xcode 14.1/14.2 + Mac M1,操作系统建议 13.2.1。
打开 insertdylib 文件,并在确认弹窗中单击 Open。
执行以下命令。
sh ./tools/xcode/install.sh
说明该命令会自动查找与替换
/Applications/Xcode.app/
的编译器,如需要恢复可执行sh ./tools/xcode/uninstall.sh
命令。
使用 Xcode 打开 Framework/ipa 工程,执行
Build/Archive
命令,暂不支持动态库。重要工程路径名称中不能有空格或中文,否则可能导致编译报错。
处理完成后使用以下命令验证加固,如果加固成功则输出不为空。
nm ./BinaryPath | grep obfuscator
后续步骤
加固后,请务必检查关键组件功能是否正常,如果安装包在加固后功能异常,请 提交工单 或搜索群号 33417739 加入钉钉群进行咨询交流。