Unity 项目的 iOS 混淆

小蟹通用混淆工程列表
对应程序:通用混淆

Unity 的 iOS 包是编辑器导出的 Xcode 工程,通常带 IL2CPP、体积很大的 Data 目录和原生插件。审核员看到的是整棵导出树,不是 Unity 工程本身。两款游戏如果导出布局、插件名、资源目录相同,玩法不同也会被看成有关联。

在 Unity 里先准备什么

用你真正要提交的 iOS 目标导出(真机 SDK、匹配的脚本后端)。Bundle Id、签名团队、版本号在 Unity 或 Xcode 设好并保持一致。不要拿另一款产品的旧 Xcode 目录只改显示名。分步说明见 Unity 导出 iOS 工程的混淆步骤

小蟹覆盖什么

从 v1.3 起工具支持 Unity3D 的 iOS 导出:原生侧 C/C++/ObjC/Swift,以及对导出产物的资源改名与加密。调用栈混淆作用于归档里的已编译语言。动态 MachO Framework 仍不走工程混淆;静态 .a 和静态 Framework 可以纳入。要保护 Framework 自身(IR 级、类似 OLLVM),请走 小蟹定向加固。混淆完成后可在 Xcode 调试该二进制。

常见坑

导出工程必须带 C++ 源码。出现 GameAssembly、没有对应 C++ 代码的工程无法混淆,需要改回导出含 C++ 的版本。其他常见失败:混淆回写文件时 Xcode 仍打开着同一工程;Debug / Release 签名没设全;多个文件编译出同名 .o。这些写在文档站的「混淆开始」和「排除混淆设置」里,见 Unity 项目混淆教程

若拒绝信写的是 4.3 或 2.3.1,请同时阅读对应页面。单个 Bundle Id 与多套隔离方案的价格见 收费方式

申请试用,归档后即可提审

下载应用中心,选择通用版或 Uniapp 专用版,在注册码页面申请授权。文档里有逐步操作。