本文引導您使用移動應用安全加固對 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 加入釘釘群進行咨詢交流。