appuploader-cli 命令行上传 IPA 到 App Store Connect upload CI 集成

appuploader-cli 命令行工具

appuploader-cli 是「开心上架」随主程序一起分发的命令行工具,用来在不依赖 Xcode(也不依赖 macOS)的情况下,把已签名的 IPA / PKG 包上传到 App Store Connect,或者本地分析 IPA 生成 App Store 所需的资源描述文件。能力上等同于 文件&提交 页面里的「提交 App Store」按钮------如果你更习惯在终端里操作,或者要把上传步骤接入自己的 CI/CD 流水线,可以直接使用它。

使用 upload / info 命令要求所用的 Apple ID 已经在 appuploader.net 完成授权;未授权或授权过期的账号会收到 license failed / license expired 提示,无法使用。可在 账号概览 中查看和激活「开心上架授权」。

在哪里找到它

appuploader-cli 随主程序一起打包,位于安装目录下的 runtime/ 目录中(不同平台文件名略有差异):

  • macOS:runtime/darwin/appuploader-cli
  • Windows:runtime/windows/appuploader-cli.exe

若想在系统终端里直接使用,进入该目录后即可运行,或把该目录加入你自己 shell 的 PATH

同目录下还有一个 appuploader-adi,用途不同,请勿混淆------它不是给用户手动调用的命令行工具。

upload ------ 上传到 App Store Connect

复制代码
appuploader upload -f <IPA/PKG 路径> -u <Apple ID> -p <App 专用密码> [--type ios]
参数 说明
-f, --file 要上传的 IPA / PKG 文件路径(必填)
-u, --username Apple ID 邮箱(必填)
-p, --password App 专用密码,格式 xxxx-xxxx-xxxx-xxxx(必填,不是 Apple ID 登录密码,获取方式见 文件&提交)
--type 包类型:ios | osx | appletvos | xros,默认 ios

示例:

bash 复制代码
appuploader upload -f Payload.ipa -u dev@example.com -p abcd-efgh-ijkl-mnop

上传过程中会实时打印进度和结果日志;出现失败时日志中会包含具体原因(如包重复、版本号冲突、签名不匹配等)。

info ------ 生成 App Store 资源描述文件

不上传,只在本地分析 IPA / PKG / ZIP 包,生成 App Store 构建投递所需的 AppStoreInfo.plist 资源描述文件。同样不依赖 Xcode,适合在 CI 里先行校验包内容,或需要这份 plist 用于其他上传工具时使用。

复制代码
appuploader info -u <Apple ID> <文件路径> [-o 输出文件] [--format xml|binary]
参数 说明
-u, --username 已在 appuploader.net 注册授权的 Apple ID 邮箱(必填)
-f, --file 文件路径,也可以直接作为位置参数传入
-o, --output 写入到指定文件;不填则输出到标准输出
--format 输出格式:xml(默认)或 binary
--deterministic 固定 UUID、进程号、时间戳等本会变化的字段,便于逐字节比对输出结果(用于测试/CI)

示例:

bash 复制代码
appuploader info -u dev@example.com Payload.ipa -o AppStoreInfo.plist

其他命令

  • appuploader help [命令] ------ 查看某条命令的帮助,等价于加 --help
  • appuploader completion [bash|zsh|fish|powershell] ------ 生成对应 shell 的自动补全脚本,日常使用可忽略。

常见问题

  • license failed / license expired:所用 Apple ID 未在 appuploader.net 完成授权或授权已过期,前往 账号概览 的「开心上架授权」激活或续期。
  • App 专用密码填错-p 需要的是 Apple 生成的 xxxx-xxxx-xxxx-xxxx 专用密码,不是登录密码,生成方式见 文件&提交。
  • 想用图形界面 :以上两个命令对应的能力,在网页版里分别是「文件&提交」页面的「提交 App Store」按钮(对应 upload);info 命令目前尚未在网页界面中提供入口,仅可通过命令行使用。
相关推荐
博、、3 小时前
智慧场馆解决方案小程序系统:从架构设计到部署实践
小程序
lhldsg7 小时前
智慧场馆解决方案小程序开发实战:从架构设计到部署指南
java·小程序·uni-app
维双云7 小时前
配送小程序怎么做?从下单到配送全流程功能拆解。
小程序
skiyee8 小时前
🚀 用 17 行代码给 UniApp 加上全局登录拦截
前端·uni-app
码农coding8 小时前
android12 开机动画分析
android
2501_915106328 小时前
安卓抓包软件2026,免证书抓包 应用层抓包 代理抓包全解析
网络协议·计算机网络·网络安全·ios·adb·https·udp
又见情义9 小时前
RK3568 Android 13 开机时间优化-禁用非必要系统服务
android
Android-Flutter10 小时前
Java Thread 和 Runnable 详解
android
smartpi_ai10 小时前
JL-17T 能接传感器并把数据发到小程序吗?GPIO/ADC/UART 平台可做,I2C/SPI 要二开
人工智能·小程序·语音识别
mmsx10 小时前
osmdroid Overlay 体系详解:比例尺/罗盘/总绘图层有序叠放
android·源码·地图·osmdroid