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

示例:

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)

示例:

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 命令目前尚未在网页界面中提供入口,仅可通过命令行使用。
posted @ 2026-08-12 17:27  不爱写文档的开发者  阅读(4)  评论(0)    收藏  举报