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 命令目前尚未在网页界面中提供入口,仅可通过命令行使用。
相关推荐
派小心.11 小时前
小程序分享链路中来源参数的传递校验
大数据·前端·数据库·人工智能·小程序·数据分析
jack1868911 小时前
安卓手机忘记锁屏密码怎么办? 无需密码也可解锁
android·智能手机
应用市场14 小时前
不用一张图片的像素小游戏:小人是字符串,房间是矩形,平衡靠两千个假玩家
android·kotlin·游戏开发
一木 之林14 小时前
微信小程序开发全攻略·文章版|00 总览:74集学习路径与知识地图
人工智能·学习·计算机视觉·微信小程序·小程序
小蒜学长15 小时前
基于SpringBoot+uni-app的闪洁家政系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·uni-app·家政服务
stevenzqzq15 小时前
android 对渠道的理解
android
QEasycloud15 小时前
BOM接口抛转失败钉钉通知策略实战教程:MySQL异常日志到钉钉消息的端到端配置
android·mysql·钉钉
AIsoft_868915 小时前
医患交流内容如何做好记录?
android·iphone
蒸鱼Yuzheng16 小时前
Android Native 崩溃证据链:Tombstone、Build ID 与 Trace 如何联合归因
android·ndk·tombstone·调试符号·崩溃分析
事圆则缓16 小时前
Kotlin 变量与函数:把页面状态和行为写成清楚的契约
android·开发语言·kotlin