appuploader-cli 接入 CI/CD 自动上传 IPA 教程,upload 与 info 命令

appuploader-cli 接入 CI/CD 自动上传 IPA 教程:为 Windows/Linux CI Runner 设计,一条命令替代手动上传,不依赖 Xcode 和 macOS。upload 命令 -f 指定 IPA、-u Apple ID、-p App 专用密码;info 命令本地生成 AppStoreInfo.plist 先校验包内容。接入方式统一:构建产出后加一步 upload,凭据走流水线密钥注入,前提是账号先在 appuploader.net 完成授权。

如果你的构建流水线跑在没有 Mac 的机器上(例如 Windows/Linux CI Runner),或者只是想把 IPA 上传这一步从"手动点按钮"变成"一条命令",appuploader-cli 就是为这个场景做的:它是「开心上架(AppUploader)」随主程序分发的命令行工具,能力上等同于网页版「文件&提交」页面里的「提交 App Store」按钮,但不依赖 Xcode,也不依赖 macOS。

前置条件

使用 upload / info 命令的 Apple ID,需要先在 appuploader.net 完成授权(即「开心上架授权」)。未授权或授权过期会收到 license failed / license expired 提示。授权状态可以在「账号概览」中查看和激活。

第一步:找到可执行文件

appuploader-cli 随主程序一起打包,位于安装目录下的 runtime/ 目录中:

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

进入该目录即可直接运行,或者把这个目录加入 CI Runner 的 PATH 环境变量,方便在脚本里直接调用。

同目录下还有一个 appuploader-adi,用途不同(内部用途),不要和 appuploader-cli 混淆。

第二步:上传 IPA/PKG

1appuploader 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(必填,不是登录密码)
--type 包类型:ios / osx / appletvos / xros,默认 ios

示例:

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

上传过程会实时打印进度和结果日志,失败时日志会带上具体原因(如包重复、版本号冲突、签名不匹配等),方便在 CI 日志里直接定位问题。

第三步(可选):本地生成 App Store 资源描述文件

如果只想在上传前先本地校验包内容,或者需要一份 AppStoreInfo.plist 给其他上传工具用,可以用 info 命令,它只做本地分析,不会真正上传:

1appuploader info -u <Apple ID> <文件路径> [-o 输出文件] [--format xml|binary]

--deterministic 参数可以固定 UUID、进程号、时间戳等本会变化的字段,便于在 CI 里逐字节比对输出结果,适合写自动化测试。

接入 CI/CD 流水线的思路

无论是 Jenkins、GitHub Actions 还是其他 CI 系统,接入方式都一样:在构建产出 IPA 之后,加一步执行 appuploader upload 命令,把 Apple ID 和 App 专用密码通过流水线的密钥/环境变量机制注入,避免明文写在脚本里。因为 appuploader-cli 本身不依赖 macOS,你的 CI Runner 也不需要是 Mac 系统。

常见问题速查

  • license failed / license expired:所用 Apple ID 未在 appuploader.net 完成授权或授权已过期,前往「账号概览」激活或续期。
  • App 专用密码填错-p 需要的是 Apple 生成的 xxxx-xxxx-xxxx-xxxx 专用密码,不是 Apple ID 登录密码。
  • 想用图形界面upload 对应网页版「文件&提交」页面的「提交 App Store」按钮;info 命令目前仅能通过命令行使用。

前往 https://appuploader.net 获取 appuploader-cli,把 IPA 上传接入你的自动化流水线。