Appearance
一句话理解
Unity 构建 iOS,不是直接生成 .ipa。Unity 先生成一个 Xcode 工程,然后由 Xcode 负责真机运行、签名、归档、上传 TestFlight / App Store。
你先记住主流程
c
Unity 工程
-> Build Profiles 选择 iOS
-> 配置 Player Settings
-> Build 生成 Xcode 工程
-> Xcode Signing & Capabilities
-> 真机测试
-> Archive
-> Upload to App Store Connect
-> TestFlight / App Store环境要求
本地构建 iOS 基本需要:
- macOS
- Unity Editor +
iOS Build Support - Xcode
- Apple ID
- 如果要上架、内购、Game Center、TestFlight:需要 Apple Developer Program
如果你在 Windows 上开发 Unity,也可以做游戏逻辑和资源,但本地不能直接完整构建 iOS,通常要用 Mac 或 Unity Build Automation / CI。
Unity 里怎么设置
打开:
File > Build Profiles然后:
- 添加
iOSBuild Profile - 点击
Switch Profile - 把要打进包里的场景加入 Scenes
- 打开
Player Settings > iOS - 设置
Bundle Identifier
例如:
c
com.yourcompany.yourgame这个 Bundle ID 非常重要,它相当于 App 的身份证。Xcode、Apple Developer、App Store Connect 都要认它。
Player Settings 重点
你重点看这些:
Company Name:公司名Product Name:游戏名Version:给玩家看的版本号Build:上传 App Store Connect 时的构建号,必须递增Bundle Identifier:应用唯一 IDTarget minimum iOS Version:最低支持系统Signing Team ID:Apple Developer 团队 IDAutomatically Sign:自动签名
Unity 6.5 文档里写到,iOS 支持 iOS 15 及以上,并推荐使用 Xcode 16 或更新版本。
签名到底是什么
iOS 最容易卡在签名。你把它想成四件东西:
c
Bundle ID:这个 App 是谁
Certificate:谁有资格签它
Provisioning Profile:允许它在哪些设备/渠道运行
Team ID:属于哪个 Apple 开发者团队开发测试用开发证书和开发描述文件。 上架/TestFlight 用分发证书和 App Store Connect 描述文件。 新手建议先用 Xcode 的 Automatically manage signing,少踩很多坑。
Development Build 与 Release
测试阶段可以开:
Development BuildAutoconnect ProfilerScript Debugging
正式发布前建议关掉:
Development BuildScript DebuggingDeep Profiling
压缩方式上,开发可用 LZ4,发布可考虑 LZ4HC,它构建慢一些,但更适合正式包。
Xcode 里做什么
Unity Build 后会生成类似:
c
Unity-iPhone.xcodeproj
Classes/
Libraries/
Data/然后在 Xcode 中:
- 打开
Unity-iPhone.xcodeproj - 选择 Team
- 检查 Bundle Identifier
- 检查 Signing & Capabilities
- 连接 iPhone
Build and Run真机测试- 没问题后
Product > Archive Distribute App- 上传到 App Store Connect
TestFlight 是什么
TestFlight 是 Apple 官方测试分发方式。上传构建后,你可以邀请测试人员安装测试版。外部测试通常可能需要 Apple 审核,正式上架前也要经过 App Review。
常见坑
- 没装
iOS Build Support - 在 Windows 上想直接出 iOS 包
- Bundle ID 和 App Store Connect 里不一致
- Build 号没有递增,上传失败
- Xcode 没选 Team
- 证书或 Provisioning Profile 不匹配
- 权限说明没写,比如相机、定位、麦克风
- 开发版选项忘了关
- 使用了不支持 iOS 的插件或原生库
- 纹理压缩没按 iOS 优化,包体大或画面异常
最重要的学习口诀
c
Unity 做内容和导出工程;
Xcode 做编译、签名、装机、上传;
App Store Connect 做测试分发和上架审核。参考资料: Unity iOS 环境设置Unity 构建 iOS 应用Unity iOS Build SettingsUnity iOS Player SettingsApple 证书说明Apple TestFlight