Unity 项目混淆

当前例子是为了演示unity3d的混淆。

要运行本示例的要求

  • 安装了Unity Hub
  • 安装了Unity
  • 安装了Python 3.x
  • 安装了pip
  • MacOS 10.0以上系统
  • 安装了crab-orange.app
  • 已经取得了注册码

索要免费体验版授权码

请先准备一个新账号,并且创建一个应用,然后提供提供一下 bundle id

邮箱:759610734@qq.com (如果2日内未回复,请加QQ:759610734)

创建工程

  1. 解压Products.zip,一般都会包含三个文件后缀分别是 .listenkey.dat.framework

  2. 打开~/Desktop/TEST-U3D/Unity-iPhone.xcodeproj,把我们给您的Products/COSDK.framework(名字以给你的为准) 和Procucts/*.dat 文件加到~/Desktop/TEST-U3D 目录下

  3. 在Xcode的左侧工程视图里面,找到Unity-iPhone,右键菜单Add Files To "Unity-iPhone",把~/Desktop/TEST-U3D/COSDK加入

  4. 点击XcodeUnity-iPhone这个工程文件 找到 TARGETS 里面的 Unity-iPhone,在Framework Search Paths里面添加 "$(PROJECT_DIR)/COSDK"

  5. Unity-iPhoneBuild Phases/Link Binary With Libraries里面加入COSDK.framework

  6. 点击XcodeUnity-iPhone这个工程文件 找到 TARGETS 里面的 UnityFramework,在Framework Search Paths里面添加 "$(PROJECT_DIR)/COSDK"

  7. UnityFrameworkBuild Phases/Link Binary With Libraries里面也加入COSDK.framework

  8. 更改Unity-iPhone这个Target的bundle id,与您新应用的bundle id一致

  9. 在AppStore上为UnityFramework创建一个单独的bundle id(这个会单独签名,之后混淆器的编译设置里面需要设置单独的签名设置,需要在一个证书内)

  10. 确保Xcode能正常编译

混淆器配置

  1. 打开crab-orange.app

  2. 点击【注册码】,导入Products/*.listenkey文件,记住注册码

  3. 点击【创建工程】创建一个混淆工程,因为没有*.xcworkspace,所以先点?按钮创建一个

  4. 回到主页面找到点【配置】按钮,把~/Desktop/TEST-U3D/COSDK 目录里3个文件添加到依赖配置的COSDK分组下 (COSDK.framework名字可能跟截图不一致)

  5. 配置编译设置,添加一个Debug签名,Target选择Unity-iPhone(如果下拉列表是空的,先进一下工程,等待工程分析结束,再返回配置界面),bundle id输入您新应用的bundle id

    Warning

    1.使用了 XcodeSigning & Capabilities 里的Automatically manage signing 使用账号自动签名的记得关闭,不然会引起编译错误。2.使用了 XcodeSigning & Capabilities 里的 xcode sign in with Apple,但是你的mobileprofile里面没有打开支持的,在编译阶段会报错,请删除掉。3.混淆程序执行后,在编译阶段失败后,可以通过打开Xcode工程,查看签名设置,如果发现不对,可以修改混淆程序中的配置,在点击【开始混淆】(切勿直接修改Xcode工程,避免导致需要点击重置按钮重新开始)

  6. 点击【开始混淆】按钮

  7. 打开 【调试模式】选项,打开【COSDK使用动态库】和 【COSDK自动初始化】

  8. 修改【COSDK自定义名称】为给你的Products.zip里面的那个framework的名字(如果是COSDK,可以不填写)

  9. 等混淆结束后,点击打开工程按钮,准备运行应用,会发现 Unity-iPhone 那个下拉框打开后,会多一个target,它的icon上面有一个阻止的标示,选中它,会自动安装应用到手机,就可以开始调试了(类似下图)

    Tip

    如果你的手机不是arm64架构的,想调试的时候新版本的Xcode是会提示无法安装的,请更换一个arm64架构的手机调试(安装不影响)