Treat Unity as a generator of an Xcode tree. Crab runs on that tree after export, not inside the Unity Editor. The v1.3 line added Unity3D support; the same language and resource passes used for native apps apply to the exported C++/ObjC layers and the Data payload.

1. Export a submit-ready Xcode project

In Unity, switch to iOS, pick the scripting backend you will ship (IL2CPP for most store builds), and set Bundle Id, version, and company name to the values that will appear on the store. Build to a new folder. Do not reuse an Xcode directory from another title. After export, open the project and confirm you can see IL2CPP-generated C++ sources. If you only have GameAssembly and no C++ files, do not start obfuscation.

2. Sign Debug and Release

Open the project once, add signing for both configurations, and download profiles. The docs page 「混淆开始」 lists the failure if signing is missing. Quit Xcode before you start obfuscation so the tool can restore files without being overwritten by Xcode’s save.

3. Run Crab and fix reported errors

Add the project in the tool, attach the required COSDK files from the docs, and run. Errors about duplicate .o names mean two sources share a stem; rename one. Warnings can be skipped only after you read them. Exclusion rules for engine types belong in 「排除混淆设置」.

4. Debug, archive, submit

Launch the obfuscated binary from Xcode. If a plugin breaks, exclude that class or file rather than turning the whole pass off. Then archive as usual. For why two Unity games still look related, read Unity iOS obfuscation and 4.3. Full screenshots: docs.

Request a trial, then archive and submit

Download App Center, choose the General or Uni-app edition, then apply for a license on the registration-code page. The docs cover the operator steps.