Unity 源码编译 Editor 并打包 Android/iOS 支持分发
基于 Unity 2022.3.62f1 源码仓库,在 macOS(Apple Silicon)上编译 Release 版 Editor,合并 Android 与 iOS 打包支持后打成 zip,让对方无需编译即可使用。
背景
源码根目录:/Users/chew/Desktop/U/YYCS_Engine/Unity2022.3.62f1/Src
- Release 构建需加
-sCONFIG=release(与官方安装包一致)
- Apple Silicon 使用
MacEditorArm64;Intel Mac 使用 MacEditor
- 平台支持模块放在
Unity.app/Contents/PlaybackEngines/ 下
编译前准备(仅编译机需要)
| 模块 |
要求 |
| Editor |
macOS |
| Android |
JDK 11、ANDROID_NDK_ROOT(r23b)、ANDROID_SDK_ROOT(API 22/23/24/26/31/33/36) |
| iOS |
已安装 Xcode(/Applications/Xcode.app) |
对方只运行 Editor 不需要上述环境;打 Android/iOS 包时仍需各自配置 SDK/Xcode。
编译 Release 版
cd /Users/chew/Desktop/U/YYCS_Engine/Unity2022.3.62f1/Src
# 1. Editor(Apple Silicon)
./jam MacEditorArm64 -sCONFIG=release
# 2. Android 支持(完整版)
perl build.pl --target=AndroidPlayer --codegen=release
# 3. iOS 支持(完整版)
perl build.pl --target=iOSSupport --codegen=release
iOS 补充(模拟器支持,可选)
build.pl 本地默认只编基础变体(设备 arm64)。接近官方完整 iOS 模块可额外执行:
./jam iOSPlayer -sCONFIG=release
./jam iOSPlayerNoDevelopment -sCONFIG=release
./jam iOSPlayerX64 -sCONFIG=release # Intel 模拟器
./jam iOSPlayerArm64Sim -sCONFIG=release # Apple Silicon 模拟器
产物路径
| 模块 |
路径 |
| Editor |
build/MacEditor/arm64/Release/Unity.app |
| Android |
build/AndroidPlayer/ |
| iOS |
build/iOSSupport/ |
合并打包分发
cd /Users/chew/Desktop/U/YYCS_Engine/Unity2022.3.62f1/Src
rm -rf /tmp/UnityDist
mkdir -p /tmp/UnityDist
cp -a build/MacEditor/arm64/Release/Unity.app /tmp/UnityDist/
mkdir -p /tmp/UnityDist/Unity.app/Contents/PlaybackEngines
cp -a build/AndroidPlayer /tmp/UnityDist/Unity.app/Contents/PlaybackEngines/AndroidPlayer
cp -a build/iOSSupport /tmp/UnityDist/Unity.app/Contents/PlaybackEngines/iOSSupport
cd /tmp/UnityDist
zip -r ~/Desktop/Unity-2022.3.62f1-Editor-Android-iOS.zip Unity.app
目录结构:
Unity.app/
└── Contents/
└── PlaybackEngines/
├── AndroidPlayer/
└── iOSSupport/
对方使用注意
| 功能 |
对方需要 |
| 打开 Editor |
解压即用 |
| Android 打包 |
本机装 Android SDK/NDK,在 Preferences → External Tools 配置 |
| iOS 打包 |
本机装 Xcode,配置签名(Apple Developer 账号) |
| 首次打开 |
未签名应用需在 macOS 隐私与安全性允许,或右键 → 打开 |
一键脚本
#!/bin/bash
set -e
ROOT="/Users/chew/Desktop/U/YYCS_Engine/Unity2022.3.62f1/Src"
OUT="$HOME/Desktop/Unity-2022.3.62f1-Editor-Android-iOS.zip"
cd "$ROOT"
./jam MacEditorArm64 -sCONFIG=release
perl build.pl --target=AndroidPlayer --codegen=release
perl build.pl --target=iOSSupport --codegen=release
./jam iOSPlayerX64 -sCONFIG=release
./jam iOSPlayerArm64Sim -sCONFIG=release
./jam iOSPlayerNoDevelopment -sCONFIG=release
rm -rf /tmp/UnityDist && mkdir -p /tmp/UnityDist
cp -a build/MacEditor/arm64/Release/Unity.app /tmp/UnityDist/
mkdir -p /tmp/UnityDist/Unity.app/Contents/PlaybackEngines
cp -a build/AndroidPlayer /tmp/UnityDist/Unity.app/Contents/PlaybackEngines/AndroidPlayer
cp -a build/iOSSupport /tmp/UnityDist/Unity.app/Contents/PlaybackEngines/iOSSupport
cd /tmp/UnityDist && zip -r "$OUT" Unity.app
echo "Done: $OUT"
推荐组合
| 场景 |
做法 |
| 仅 Editor |
./jam MacEditorArm64 -sCONFIG=release,直接分发 Unity.app |
| Editor + Android |
额外 perl build.pl --target=AndroidPlayer --codegen=release,复制到 PlaybackEngines/AndroidPlayer |
| Editor + Android + iOS |
再 perl build.pl --target=iOSSupport --codegen=release,复制到 PlaybackEngines/iOSSupport |
产物已存在时可跳过编译,直接执行合并打包步骤。
Unity 源码编译 Editor 并打包 Android/iOS 支持分发
背景
源码根目录:
/Users/chew/Desktop/U/YYCS_Engine/Unity2022.3.62f1/Src-sCONFIG=release(与官方安装包一致)MacEditorArm64;Intel Mac 使用MacEditorUnity.app/Contents/PlaybackEngines/下编译前准备(仅编译机需要)
ANDROID_NDK_ROOT(r23b)、ANDROID_SDK_ROOT(API 22/23/24/26/31/33/36)/Applications/Xcode.app)对方只运行 Editor 不需要上述环境;打 Android/iOS 包时仍需各自配置 SDK/Xcode。
编译 Release 版
iOS 补充(模拟器支持,可选)
build.pl本地默认只编基础变体(设备 arm64)。接近官方完整 iOS 模块可额外执行:产物路径
build/MacEditor/arm64/Release/Unity.appbuild/AndroidPlayer/build/iOSSupport/合并打包分发
目录结构:
对方使用注意
一键脚本
推荐组合
./jam MacEditorArm64 -sCONFIG=release,直接分发Unity.appperl build.pl --target=AndroidPlayer --codegen=release,复制到PlaybackEngines/AndroidPlayerperl build.pl --target=iOSSupport --codegen=release,复制到PlaybackEngines/iOSSupport产物已存在时可跳过编译,直接执行合并打包步骤。