WINDOWS → iOS · 构建研究指南

在 Windows 开发,
把 iOS 构建走通。

读懂 UE 5.6 两篇官方文档,串起远程构建、IPA 打包、真机调试与正式分发。

文档核对 2026.11.119 份官方来源附完整 Markdown
构建拓扑RESPONSIBILITIES
01 / WINDOWS编辑与资源处理

UE Editor · Cook · Metal 4.4

SSH · 远程构建
02 / PRIMARY MACApple 原生工具链

Xcode · Compile · Link · Sign

打包产物 · 安装与验证
03 / iPHONE & iPAD真机运行与调试

Install · Launch · Debug

职责分工示意,并非 UAT 任务执行时序
01
两篇文档,同一条链路

Windows 入口讲准备,打包页讲执行。

02
OS 标签主要差在安装

macOS 多出通过 Xcode 安装的说明。

03
优势来自协作与复用

全量构建加速需要实际项目测量。

i

本文比较的是 Windows 发起远程构建与 Mac / macOS 本地构建。iPhone、iPad 是运行与测试设备。

01

两篇文档分别解决什么

你提供的两篇文档属于同一条链路的不同层次,不是两套互斥的打包方案。

文档 解决的问题 需要补充阅读的内容
iOS for Windows Users Windows 开发者如何使用 Mac 构建能力,以及如何在 Windows 编译 Metal 着色器 入口实际链接到 Remote Mac Builds 和 Windows Metal Shader Compiler
Packaging iOS Projects 环境准备好后,在编辑器中执行打包,以及安装生成的 IPA 没有完整展开 C++ 远程编译、SSH、签名和工具链前置条件

正确阅读顺序是:工具链与签名 → 远程连接(Windows 路线)→ Package Project → 安装与验证。只看打包页的 Windows 标签,不能据此认定 Windows 独立完成了 iOS 原生代码编译。[1][2][6]

02

Windows / macOS 标签的实际差异

我读取了打包页两个 OS 内容块的完整正文。Windows 栏有 6 个步骤;macOS 栏有 10 个步骤,后 4 个是在 Xcode 中安装 IPA。

原文内容对照选择标签,查看该栏的终点
终点:拿到可部署的 IPA
连接设备打开 UE 项目执行打包选择目录等待完成

Windows 栏没有展开 Xcode 安装步骤,也没有说明 C++ 远程构建的全部前置条件。它描述的是编辑器打包操作。

页面内容 Windows 标签 macOS 标签
打开项目、执行 iOS 打包 有 有
指定保存位置、等待打包完成 有 有
保存目录的措辞 选择 IPA 保存位置 选择项目目录
Xcode → Window → Devices and Simulators 没有展开 有
选择 IPA 并安装到设备 没有展开 有
最终结果 得到可部署的 IPA IPA 已安装到 iOS 设备
远程构建和签名前置条件 没有完整展开 没有完整展开

因此,你觉得两个标签相似是有依据的:正文主要区别是安装步骤和终点;底层编译发生在哪里,需要看远程构建文档。 保存目录措辞不同,不代表 IPA 格式不同,也不能把“项目目录”当作唯一合法输出位置。[6]

这篇 5.6 中文页面仍出现 UE4、File > Package Project > iOS 和旧截图;对应英文页也有旧表述。5.6 的远程构建、签名文档使用 Platforms > iOS > Package Project。应按实际 5.6 编辑器菜单操作,而不是照搬旧截图。[2][5][6]

OS 控件还列出 Linux,但我读取的该页 Linux 内容块没有正文。这不构成 Linux 支持相同流程的证据。[6]

03

先理解机器分工

机器 主要职责 关键说明
Windows 开发机 UE 编辑、发起构建、内容 Cook;安装匹配工具后可编译 Metal 着色器 Cook 是把资源转换为目标平台可用的数据,不等于 C++ 编译
主构建 Mac 使用 Xcode / Apple 工具链处理 iOS 原生编译、链接和签名 日常远程构建不要求预先安装 UE 或保存完整项目
辅助 Mac(可选) 接收已构建、已 Cook 的缓存及 Xcode 工程,连接测试设备调试 官方明确说明辅助 Mac 不承担全量构建
iPhone / iPad 安装、运行、验证和调试 打包成功与真机运行成功是不同验收点

这是常规 Windows 主导的分工示意,不是所有 UAT 子任务的精确执行时序。Cook 也可以在 Mac 上进行;可用的 Windows Metal 工具仅承担着色器编译,不能代替 Xcode 编译游戏原生代码。[2][3][7]

04

UE 5.6 的准备与打包流程

1. 固定工具链

项目 核对到的 UE 5.6 文档要求
Mac 最低版本 macOS Sonoma 14.5、Xcode 16
Mac 推荐版本 macOS Sonoma 14.7、Xcode 16.1
目标系统基线 文档列出 iOS 15 或更高版本
Windows Metal Developer Tools 4.4;5.7 对应 5.3,不能混用版本说明
Windows iOS 支持组件 远程构建文档要求 iTunes,并建议使用 Apple 官网版本

以上是 UE 5.6 文档基线,不是 2026 年 App Store 提交工具链要求。Metal 页的失效提示针对 UE 5.1–5.4;该页另列出了 5.6 的工具版本。安装匹配的 Windows Metal 工具后,UE 会自动使用它。[2][3][4]

2. 准备签名与项目标识

设置一致的 Bundle Identifier / App ID,并准备与构建用途匹配的签名身份、Provisioning Profile 和 entitlements。开发测试用的 Profile 需要覆盖测试设备。Profile 必须对应实际使用的证书;远程 Mac 必须具有可用于签名的身份,不能只在 Windows 编辑器里看到绿色状态就认定 Mac 已准备好。[2][5]

UE 的设置入口是 Project Settings > Platforms > iOS。远程文档要求 Mac 的 System Keychain 安装开发证书,并建议先在 Mac 上成功构建一次,排除本地工具链和签名问题后再引入 SSH。[2][5]

3. 配置 Mac 的 SSH 入口

在 macOS 启用 Remote Login,记录 Mac 的主机名或 IP 与登录用户名。两台机器需要网络互通。官方截图使用旧版系统的 Sharing 路径;新系统应找到对应的“远程登录”设置。[2]

4. 在 Windows 配置远程构建

打开 Project Settings > Platforms > iOS 的远程构建设置,填写 Remote Server Name 和 Remote User Name,执行 Generate SSH Key,完成文档规定的连接与密钥配置。[2]

如果日志出现 UNPROTECTED PRIVATE KEY FILE / 0660,检查 RemoteToolChainPrivate.key 的文件权限。它属于 SSH 连接层问题,应先修复连接,再判断编译器或签名是否出错。[2]

5. 发起正常 IPA 打包

在 Windows 编辑器选择 Platforms > iOS > Package Project。UE 发起远程构建,所需 Apple 原生工具链工作在主 Mac 上执行;按打包对话框选择或确认产物位置,检查构建日志和最终产物。[2][6]

正常打包与 Prepare for Debugging 有不同用途。后者主要为 Xcode 真机调试准备、整理已有的 Cook 数据和构建产物,不应把它当成“生成正式分发包”的同义命令。[2][7]

6. 安装并验证

确认 IPA 的签名用途与目标设备相符,再安装、启动并测试关键功能。macOS 标签提供的是通过 Xcode 的 Devices and Simulators 安装 IPA 的说明;调试流程还支持在 Xcode 使用断点、日志和 LLDB。[6][7]

工程验收建议: 分别记录“远程连接成功”“编译成功”“签名 / 打包成功”“安装成功”“启动和关键功能成功”。只有第一项成功,无法证明后面几项。

05

主 Mac、辅助 Mac与调试复用

辅助 Mac 不是必需的第二台构建服务器。它用于让个人测试 Mac 复用主构建机已有产物,减轻本地构建和 Cook 的负担。[2][7]

  1. 先禁用 Enable Secondary Remote Mac,使用主 Mac 完成至少一次构建。
  2. 再启用辅助 Mac 设置,并在 Windows 执行 Platforms > iOS > Prepare for Debugging。
  3. 主 Mac 产物经 Windows 同步至辅助 Mac,后者获得 Xcode 工程与缓存。
  4. 在辅助 Mac 打开生成的 Xcode 工程,按远程文档使用 Product > Perform Action > Run Without Building 在测试设备启动。

这里的收益来自 复用已有产物。内容或代码发生变化,仍需生成与变化匹配的新产物;不能把 Run Without Building 解释为任何修改都不需要重建。[2][7]

远程文档给出的首次同步约 10–15 分钟、后续约 30 秒,针对辅助 Mac 同步流程。它不是 UE 5.6 全量编译、Cook 或 Shipping 打包的性能承诺。[2]

06

相比直接在 Mac 构建的优势

以下是根据职责分工得出的工程判断,没有对你的项目做性能基准测试。

哪条路线适合你基于工作方式的建议
推荐思路Windows 发起 + 主 Mac 构建

保留 Windows 编辑与资源处理工作流,让 Mac 处理 Apple 原生工具链。先验证远程连接、工具版本和签名,再比较真实项目的构建耗时。

比较项 Windows 发起 + 远程 Mac 直接在 Mac 构建
日常开发环境 继续使用 Windows 工作流 编辑、构建集中在 Mac
跨平台团队 可共用 Windows 主工作区和 Mac 构建资源 每名开发者的 Mac 环境需要保持一致
Mac 使用方式 高性能主 Mac 可共享;个人 Mac 可侧重调试 本机承担编辑、Cook 和 Apple 构建工作
全量构建速度 受 Windows / Mac 性能、同步和排队影响 少一层远程连接及文件同步
原生 SDK、签名问题定位 需要同时查看 Windows 与远程 Mac 日志 Xcode、Keychain 和原生调试环境集中
初次配置与维护 多出 SSH、路径、权限、网络和多机缓存管理 配置链路更短

适合远程路线: 团队日常主要在 Windows,已有可共享的 Mac 构建机,或项目的资源处理能明显利用 Windows 硬件。

适合直接 Mac 路线: 个人开发、iOS 为主、经常处理 Apple 原生 SDK 或 Xcode 调试,并且本地 Mac 性能足够。

比较速度时,使用相同项目、配置、产物目标和缓存条件。直接 Mac 也可使用预编译 UE 和增量构建;不能拿“远程构建复用缓存”与“Mac 每次从零编译整个引擎和编辑器”比较后得出固定加速倍数。导入 Cook 数据能省掉调试 Mac 的编辑器构建和 Cook 工作,但这也不是远程 C++ 全量编译自动变快。[7]

07

IPA、Archive 与正式分发

打包页的旧式叙述,不足以覆盖 UE 5.6 的现代 Xcode 分发流程。现代 Xcode 文档说明:macOS 工作流不再必然自动生成 IPA;正式分发以 .xcarchive 为核心,再通过 Xcode Organizer 验证、分发或导出 IPA。[8]

名称 含义 不能据此推断的结果
Development / DebugGame 开发或调试的编译配置 可直接提交 App Store
Shipping 面向发布的编译配置 已完成分发签名和商店验证
For Distribution 分发流程设置 已安装、已上传或审核通过
.ipa 用于分发 / 安装的应用封装 所有设备都能安装
.xcarchive Xcode 归档,包含应用与相关产物 已经导出了可用 IPA
.dSYM 崩溃符号化所需的调试符号 应用的功能或性能已验证

在现代流程中,Product > Archive 或 UE 的分发打包可生成 Xcode 归档;在 Organizer 中选择目标分发方式,完成相应签名、验证或导出。Archive 与普通 Package Project 应按项目启用的工作流区分,不要把旧打包截图里的结果当成所有 5.6 配置的固定行为。[8]

当前上架工具链要单独核对

截至 2026-11-11,Apple 官方页面写明:自 2026-04-28 起,上传 App Store Connect 的应用须使用 Xcode 26 或更新版本,以及 iOS 26 等对应 SDK。因此,满足 UE 5.6 文档的 Xcode 16 基线,不等于满足当前上架要求。[9]

这不意味着运行设备的最低系统必须设为 iOS 26;构建 SDK 与最低部署系统是不同概念。要用 UE 5.6 做当前正式上架,需要进一步验证引擎 / 插件与所需新工具链的兼容性。本次没有执行该兼容性验证;Windows 远程构建不会自动解决它。

08

常见误解与交付核对

容易混淆的边界

说法 更准确的理解
Windows 标签意味着不需要 Mac 标签省略了前置条件;需要原生编译的项目仍按远程路线准备
安装 Metal 工具就能编译整个 iOS 项目 它处理 Metal 着色器;游戏原生代码仍依赖 Apple 工具链
辅助 Mac 帮主 Mac 分担全量编译 它复用已构建数据,用于调试
Xcode 能处理所有 UE 资源 Xcode 不负责 UE 内容 Cook
Shipping 就是 App Store 包 编译配置、签名用途、归档 / 导出和提交验证需要分别完成
打包成功等于游戏可以正常运行 安装、启动、关键功能和真实设备表现仍需验证

签名文档另列出了纯 Blueprint 项目在 Windows 上开发 / 测试的路径;不能把它推广到含有待编译 C++ 插件的项目,也不能推导成所有发布情形都免除签名或 Mac 要求。现代 Xcode 文档说明,内容项目会复用引擎的通用 UnrealGame 目标。[5][8]

团队可以共享远程配置,按项目管理 .ini。官方远程文档还提到共享 SSHKeys;本指南的工程建议是用受控凭据管理保存私钥,不把私钥提交到公开或普通源代码仓库。该建议与原文的旧式共享方案不同。

按失败阶段排查

最早失败阶段 首先检查
SSH / 同步 Remote Login、地址、用户、密钥权限、网络
原生编译 / 链接 Xcode / SDK 与 UE、插件及库的兼容性
Cook / Metal 资源日志、目标平台、Windows Metal 工具版本
签名 / 归档 / 导出 Bundle ID、证书身份、Profile、entitlements、分发目标
设备安装 / 启动 Profile 覆盖、设备与系统支持、运行日志

上表是工程排查建议。应寻找最早失败的阶段,避免把最终“没有 IPA”当成根因。

交付核对

0 / 6 项已手工确认

下面是手工核对项,勾选只表示读者自行确认,不代表网站执行过检测。

09

官方来源与证据范围

除 Apple 当前要求外,下面 Epic 链接均固定 application_version=5.6。中文翻译、旧截图与较新流程发生冲突时,本指南保留差异并结合对应的 5.6 英文正文解释,没有把页面版本标签当成所有内容均已更新的证明。

编号 官方文档 使用范围
S1 iOS for Windows Users / Windows 上开发 iOS 的入口 两篇子文档的关系
S2 Remote Mac Builds 主 / 辅 Mac、SSH、远程打包、调试复用
S3 Windows Metal Shader Compiler UE 5.6 对应 Metal Developer Tools 4.4
S4 iOS / iPadOS / tvOS Development Requirements Mac、Xcode 和目标系统基线
S5 Provisioning Profiles and Signing Certificates 标识、签名、Profile、Blueprint 边界
S6 Packaging iOS Projects / 打包 iOS 项目 Windows / macOS 两个内容块及旧说明
S7 Debugging iOS Projects With Xcode Cook 与 Xcode 的分工、调试命令
S8 Modernized Xcode Workflow .xcarchive、分发、自动签名和导出 IPA
S9 Apple Upcoming Requirements 2026-04-28 生效的 App Store Connect SDK 要求

证据状态:官方正文已核对;构建流程与系统标签差异已整理;性能比较属于工程判断;具体项目的 UE 5.6 打包、真机运行和新 SDK 兼容性尚未执行验证。