Skip to content

[Unity][构建]源码编译 Editor 并打包 Android/iOS 支持分发 #43

@nzcv

Description

@nzcv

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_ROOTr23b)、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

产物已存在时可跳过编译,直接执行合并打包步骤。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions