文档

iOS 应用安全加固

更新时间:

本文引导您使用移动应用安全加固对 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

操作步骤

  1. 配置环境文件。按照以下方法生成 MSAConfig.json文件,并放到 $HOME目录下。在 Mac 机器下打开命令行输入 echo $HOME,即可得到 $HOME 目录,使用时替换为真实值即可,字段如下:

    {
        "appId": "应用 appId",
        "workspaceId": "应用 workspaceId",
        "tenantId": "应用 tenantId",
        "accessKeyId": "阿里云账号 accessKeyId",
        "accessKeySecret": "阿里云账号 accessKeySecret",
        "license": "目前空即可",
        "domain":"xxx"
    }
    说明
  2. 安装加固工具。

    1. 下载加固工具,解压后进入目录 toolsxcode

      说明

      hh

    2. 打开 insertdylib 文件,并在确认弹窗中单击 Open

      image

    3. 执行以下命令。

      sh ./tools/xcode/install.sh
      说明

      该命令会自动查找与替换 /Applications/Xcode.app/的编译器,如需要恢复可执行 sh ./tools/xcode/uninstall.sh命令。

  3. 使用 Xcode 打开 Framework/ipa 工程,执行 Build/Archive命令,暂不支持动态库。

    重要

    工程路径名称中不能有空格或中文,否则可能导致编译报错。

  4. 处理完成后使用以下命令验证加固,如果加固成功则输出不为空。

    nm ./BinaryPath | grep obfuscator

后续步骤

加固后,请务必检查关键组件功能是否正常,如果安装包在加固后功能异常,请 提交工单 或搜索群号 33417739 加入钉钉群进行咨询交流。