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命令目前尚未在网页界面中提供入口,仅可通过命令行使用。