Construct 3 全程在浏览器里做游戏,不装任何软件——这点在"不用 Mac 开发"这件事上先天占优。发 iOS 版的时候,它通过内置的构建服务把工程导出成一个 Xcode 工程(底层是 Cordova),你再用 Xcode 编译签名成 IPA。
所以要先说清楚: 最后的编译签名仍然需要一台装了 Xcode 的 Mac。构建服务导出的是工程,不是成品 IPA,这一点我一开始理解错了,以为浏览器里点一下就能拿到能上架的包。
不过证书和描述文件的申请、以及 IPA 的上传,都可以用开心上架(AppUploader)在 Windows 上完成。
| 环节 | 我实际怎么做的 |
|---|---|
| 注册 Bundle ID、签发证书、生成描述文件 | Windows 上做完 |
| 做游戏、导出 Xcode 工程 | 全在浏览器里,构建服务在云端 |
| 用 Xcode 编译签名成 IPA | 要 macOS |
| 提交 App Store | Windows 上传 |
| 装到 iPhone 测试 | 扫码注册 UDID,再扫码装 |
说明一下:我用的工具本身在 macOS 上也能用(网页版不挑系统,桌面客户端有 macOS 版)。表里"不需要 Mac"是指这一步不再需要 Xcode、钥匙串访问或 Transporter。
Construct 3 的 Project Properties 里找到移动端发布相关的 Package name / App ID,填反向域名,比如
com.yourcompany.gamename。版本号、作者、描述也顺手填了。
导出的工程会把这个值写进
CFBundleIdentifier,跟描述文件绑定的 App ID 对不上就签名失败。改完 App ID 记得重新导出一次,别拿旧包接着用。
注册 Bundle ID:开心上架的「Bundle ID」页面点「新建 Bundle ID」,Identifier 填上一步的 App ID。 创建后改不了。游戏要用推送或 Game Center 的,在这个 Bundle ID 的「权限」页面勾上再保存。
签发证书:「证书」页面点「新建证书」,上架选发布签名证书,真机调试选开发签名证书。绑定 Bundle ID,填名称邮箱,设一个
.p12 保护密码——导入 Mac 钥匙串时要输,服务器不保存,忘了只能吊销重签。勾上「使用开心上架服务同步证书」可以在借来的那台 Mac 上直接下载,不用拿 U 盘拷。

生成描述文件:「描述文件」页面点「新建描述文件」,上架选 App Store 类型,内测选 Ad Hoc 并勾上测试设备,关联上面的 Bundle ID 和证书,提交后下载
.mobileprovision。
整个过程在浏览器加 Windows 上完成,不用开 Mac 的钥匙串。跟 Construct 3 本身的工作方式挺搭的。
Construct 3 里走 Menu → Project → Export,平台选移动端的 Xcode 项目选项,等云端构建服务处理完,下载压缩包。
解压出来是个 Cordova 结构的 Xcode 工程,里面有
.xcodeproj /
.xcworkspace。这一步全程在浏览器里,用什么系统都行。
先把签名材料装好:
1security import dist.p12 -k ~/Library/Keychains/login.keychain-db -P "你的p12密码" -T /usr/bin/codesign23mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles4cp AppStore.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles/
然后用 Xcode 打开导出的工程:
工程里有 CocoaPods 依赖的话,记得先
pod install,然后打开
.xcworkspace 而不是
.xcodeproj——这个搞错的话会报一堆找不到符号的错。
用到相机、麦克风插件的,
Info.plist 里对应的
NS*UsageDescription 也要填上,缺了上传阶段会被打回。
我一般先在开心上架的「文件&提交」页面把包打开看一眼签名信息——Bundle ID、描述文件类型、证书有效期,确认了再点「提交 App Store」,日志实时滚。

命令行:
1appuploader-cli upload -f Game.ipa -u dev@example.com -p abcd-efgh-ijkl-mnop
-p 是 Apple 生成的 App 专用密码(
xxxx-xxxx-xxxx-xxxx),不是 Apple ID 登录密码。用 API 密钥也行:
1appuploader-cli upload -f Game.ipa --api-key <KeyID> --api-issuer <IssuerID> --private-key Auth_Key.p8
密钥方式只收
.ipa,且 App 要先在 App Store Connect 里建好。这条命令不依赖 macOS。
顺带说个审核上的经验:体量小的 HTML5 小游戏容易撞上 App Store 审核指南 4.2(最低功能要求),上架前先掂量一下内容量够不够,别等审核被拒了才回来补。
「设备」页面点「注册设备」,二维码发出去让人扫上报 UDID(一年 100 台,免费账号 3 台)。回描述文件那边点「重建」,生成一份包含这些设备的 Ad Hoc 描述文件。
在 Xcode 里换成这份描述文件,Archive 时导出方式选 Ad Hoc,然后在「文件&提交」页面生成二维码让人扫码装。
Construct 3 让你在浏览器里做完整个游戏,唯一需要借 Mac 的就是最后那次 Archive。签名材料和上传这两块都能在 Windows 上处理,实际占用 Mac 的时间很短。
我用的是开心上架网页版,打开就能用,和 Construct 3 一样不用装东西。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70051073/viewspace-3181459/ ,如需转载,请注明出处,否则将追究法律责任。