怎么用 Godot 导出 iOS 应用并上架 App Store?签名字段该填什么?

用 Godot 做 iOS 的人第一次打开导出预设,多半会被签名那几个字段卡住——Provisioning Profile UUID、Code Sign Identity、Team ID,每个都要填,但 Godot 不会告诉你这些值从哪来。我当初也是对着空白输入框发呆了半天。

另外要先说清楚:Windows 上导出之后拿不到能上架的 IPA,Godot 产出的是需要 Xcode 继续处理的工程,编译签名归档还是得在 macOS 上做。这个没法绕。但那几个字段对应的证书和描述文件,完全可以在 Windows 上申请,最后把 IPA 传上去也不用回 Mac——我用的是开心上架(AppUploader)。

结论,哪一步绕不开 Mac

环节 我实际怎么做的
注册 Bundle ID、签发证书、生成描述文件 Windows 上做完
Godot 导出 iOS 工程 Windows 版编辑器就行
编译签名成 IPA 要 macOS——用 Xcode 或 macOS CI
提交 App Store Windows 上传
装到 iPhone 测试 扫码注册 UDID,再扫码装

顺带说明:我用的工具不是 Windows 专用的,网页版换成 macOS 或 Linux 的浏览器一样能开,桌面客户端也有 macOS 版。表里"不需要 Mac"说的是这一步摆脱了 Xcode、钥匙串访问、Transporter 的依赖。

第一步:填 Bundle Identifier 和 Team ID

在「项目 → 导出 → 添加 iOS 预设」里,Application 分组下的 Bundle Identifier 填反向域名,比如 com.yourcompany.gamename。顺手把 Short Version、Version(build number)、App Store Team ID 也填上。

Team ID 就是开发者账号那串 10 位字符,在开心上架的账号概览里能直接看到。这个字段空着或者填错的话,Xcode 归档阶段会报签名失败,而且错误信息不会明说是 Team ID 的问题。

对了,导出之前先确认「编辑器 → 管理导出模板」里装了和引擎同版本的模板,没装的话导出直接失败——这是引擎侧的事,和证书无关,但很多人第一次会撞上。

第二步:在 Windows 上签出证书和描述文件

注册 Bundle ID:开心上架的「Bundle ID」页面点「新建 Bundle ID」,Identifier 填第一步那个字符串。创建后改不了。游戏要用 Game Center、推送、内购的,在这个 Bundle ID 的「权限」页面勾上再保存。

签发证书:「证书」页面点「新建证书」,上架选发布签名证书,真机调试选开发签名证书。绑定 Bundle ID,填名称邮箱,设一个 .p12 保护密码,服务器不保存它,忘了只能吊销重签。勾上「使用开心上架服务同步证书」可以在打包用的那台 Mac 上直接下载,不用拷来拷去。
新建证书

生成描述文件:「描述文件」页面点「新建描述文件」,上架选 App Store 类型,内测选 Ad Hoc 并勾上测试设备,真机调试选开发类型。关联上面的 Bundle ID 和证书,提交后下载 .mobileprovision

第三步:把 UUID 填进导出预设

Godot 的 iOS 导出预设里,Capabilities 下面有一组签名字段,一般包括:

  • Provisioning Profile UUID Debug / Release:填对应描述文件的 UUID;
  • Code Sign Identity Debug / Release:填证书的通用名称,比如 Apple Development / Apple Distribution
  • Export Method Debug / Release:Debug 用 Development,上架用 App Store。

UUID 从哪看是个常见问题。我的做法是在开心上架的「文件&提交」页面把 .mobileprovision 直接打开,详情里 UUID、绑定的 App ID、关联证书、有效期都列着,不用在 Mac 上敲 security cms 解一遍。

注意这里要的是 UUID(一串带连字符的十六进制),不是描述文件名称,填错了 Xcode 那边会找不到 profile。

具体字段名和分组在不同 Godot 版本里略有差异,以你用的版本为准。

第四步:导出并在 macOS 上编译

Godot 里点「导出项目」,选个输出目录,Windows 上会生成 iOS 工程文件。拷到 Mac 上打开:

open <导出目录>/<项目名>.xcodeproj

在 Xcode 里关掉 Automatically manage signing,手动选证书和描述文件(先把 .p12 导进钥匙串、.mobileprovision 拷到 ~/Library/MobileDevice/Provisioning Profiles/),然后 Product → Archive → Distribute App 导出 IPA。

CI 上就是把两个文件用 base64 存进加密变量,构建时解码导入,再用 xcodebuild archivexcodebuild -exportArchive 出包。

第五步:把 IPA 传上去

拿到 IPA 之后 Xcode Organizer 和 Transporter 都可以不用了。我一般先在开心上架的「文件&提交」页面把包打开看一眼签名信息,确认了再点「提交 App Store」,日志实时滚。

命令行:

appuploader-cli upload -f Game.ipa -u dev@example.com -p abcd-efgh-ijkl-mnop

-p 是 Apple 生成的 App 专用密码(xxxx-xxxx-xxxx-xxxx),不是登录密码。用 API 密钥也行:

appuploader-cli upload -f Game.ipa --api-key <KeyID> --api-issuer <IssuerID> --private-key Auth_Key.p8

密钥方式只收 .ipa,且 App 要先在 App Store Connect 里建好。

第六步:发内测包

「设备」页面点「注册设备」,二维码发出去让人扫上报 UDID(一年 100 台,免费账号 3 台)。回描述文件那边点「重建」,生成一份包含这些设备的 Ad Hoc 描述文件。

这里有个容易忘的点:重建之后 UUID 会变,记得回导出预设把新的 UUID 填进去,Export Method 也改成 Ad Hoc,再重新导出编译。然后在「文件&提交」页面生成二维码让人扫码装。

Godot 最麻烦的其实就是导出预设里那几个字段,一旦搞明白值从哪来,后面就是机械操作了。编译那一环还得靠 Xcode,但证书、描述文件、上传、装机都能可以在 Windows 上实现。
12909bcc65be75449cb0be59d70a8542_20251222121203

posted @ 2026-09-21 18:04  不爱写文档的开发者  阅读(4)  评论(0)    收藏  举报