# 把 Unity 游戏移植到 iOS

> 从 Unity 到 iOS 的移植，意思是重建一款你拥有的游戏，然后通过苹果审核。难的是触摸输入和签名，不是换引擎。

- URL: https://www.summerengine.com/zh/port-unity-game-to-ios
- Keyword: 移植 Unity 游戏到 iOS
- Related: https://www.summerengine.com/zh/porting

把 Unity 游戏移植到 iOS，意思是为 iPhone 和 iPad 重建一款你拥有的游戏，再把那个构建提交到 App Store。没有工具能把 Unity 项目转换成一个过审的 iOS 应用。

有两件事让 iOS 和桌面移植不同。输入换了形状：键盘、鼠标和手柄的假设变成触摸，每个控件都要能被拇指够到。分发有门槛：你需要一台装有 Xcode 的 Mac、一份 Apple Developer Program 会员资格、一张签名证书、一个描述文件，以及一个能通过人工审核的构建。

Summer Engine 目前导出桌面版本，iOS 版本需要装有 Xcode 的 Mac、签名，还要针对触控输入做一轮适配。游戏用 C++ 和 GDScript 写，C# 可在桌面编辑器中使用，不过在 Godot 4 工作流中，C# 在 iOS 上仍属实验性。项目归你，不收分成。

## 触摸是重新设计，不是重新映射

玻璃上的虚拟摇杆比它取代的键盘更糟。与其如此，不如改造操作方案：点按移动、滑动冲刺、长按瞄准，在原本要求精准的地方加入自动瞄准。点击目标至少要 44 点见方。让拇指远离动作区域，并尊重安全区，别让任何东西压在主屏指示条或灵动岛下面。如果游戏确实需要精确的模拟操作，就把 MFi 和蓝牙手柄支持作为可选项，而不是基准。

## 构建能发布之前苹果要求什么

你需要一台运行 Xcode 的 Mac、一份每年 99 美元的 Apple Developer Program 会员资格、一张分发证书，以及一个 App Store 描述文件。构建通过 Xcode 或 Transporter 上传到 App Store Connect，然后发到 TestFlight，最后进入审核。审核会检查在真机上是否崩溃、元数据和截图是否属实、隐私政策链接是否有效、数据收集的隐私清单是否齐备，以及任何数字商品是否正确使用了应用内购买。

## 决定这次移植的设备预算

iPhone 在持续负载下会降频。一个能撑两分钟然后掉帧的 60 fps 目标，就是一次失败的移植。内存预算要抠紧，因为一款被系统以内存压力杀掉的游戏，在玩家看来就是崩溃。缩小贴图尺寸、使用压缩格式，并在你打算支持的最老设备上测试，而不是最新的那台。还要处理中断：来电、通知或锁屏必须让游戏暂停，并在恢复时不丢数据。

## 避免走进死胡同的重建顺序

先移植玩家控制器和一个关卡，第一天就在真机上跑起来，之后每周都保持它能在设备上运行。从 Unity 源码里照搬精确的调校数值，让手感对得上。尽早替换 Unity 专有的服务：分析、广告、应用内购买和云存档都需要 iOS 上的对应方案。商店美术和本地化留到最后，因为苹果审核因元数据被拒的次数远多于因代码。

## FAQ

### 我能把 Unity 项目直接转换成 iOS 应用吗？

转不到 Summer Engine 里。这里没有 Unity 项目导入器。你要重建游戏，复用属于你的美术和音频，再从新项目导出一个 iOS 构建。

### 发布 iOS 游戏需要 Mac 吗？

需要。苹果要求用 Xcode 做签名和上传，而 Xcode 只在 macOS 上运行。租用的 Mac 构建服务可行，但没有一条完全只靠 Windows 上架 App Store 的路。

### Summer Engine 里的 C# 在 iOS 上能用吗？

C# 可在桌面编辑器中使用，但在 Godot 4 工作流中，C# 在 iOS 上仍属实验性。打算发布到 iOS 的玩法代码，用 GDScript 或 C++ 更稳妥。

### 在 App Store 上发行要花多少钱？

Apple Developer Program 每年 99 美元。之后苹果会从销售中抽成，小型开发者在小企业计划下抽成更低。Summer Engine 不收任何分成。

### iOS 移植为什么会被拒？

多数拒绝和代码无关。常见原因是在审核员设备上崩溃、截图缺失或误导、隐私政策链接失效、隐私清单不完整，或在苹果应用内购买之外销售数字内容。

[开始重建](https://www.summerengine.com/zh/download)

---

## Machine-readable resources

- Site index for agents: https://www.summerengine.com/llms.txt
- Full inlined content: https://www.summerengine.com/llms-full.txt
- Porting catalog: https://www.summerengine.com/llms-porting.txt
- Structured catalog: https://www.summerengine.com/agent-catalog.json
- Sitemap: https://www.summerengine.com/sitemap.xml
- Developer resources: https://www.summerengine.com/docs
- Summer API (assets from any agent or code; public per-call model prices): https://docs.summerengine.com/api