Linux 上生成 AppStoreInfo.plist,App Store 上架 iOS

在 Linux 服务器上处理 iOS 上传时,很多人会卡在一个奇怪的问题上,IPA 签名完成之后,等待上传的时候,但工具提示缺少 AppStoreInfo.plist

这个文件容易让人误解。它不是 App 里的资源文件,也不是放进 Payload 里的配置文件。它属于上传阶段的数据,和 IPA 一起被提交给 App Store Connect。

确认 Linux 负责的是上传

在这套流程里 Linux 的作用是接收已经签名完成的 IPA,调用命令行上传工具将包提交到 App Store Connect

IPA 可以来自:Xcode Archive、Fastlane 构建、Flutter / React Native 的 macOS 构建节点、HBuilderX 或云打包服务,Linux 不需要参与 iOS 编译,只处理上传。

AppStoreInfo.plist 为什么会在 Linux 上传时出现

如果使用 Xcode 的图形化上传流程,相关 metadata 会由 Xcode 自动处理,我们很少看到它。

但在 Linux 上,没有 Xcode,也没有 Transporter 图形界面。上传工具如果没有自动生成 metadata,就可能出现Missing AppStoreInfo.plist,或者上传阶段直接失败。

这类问题不代表 IPA 损坏,也不代表证书无效。它说明上传缺少 App Store 所需的描述信息。

不建议手动创建 AppStoreInfo.plist

手动创建 plist 看起来可行,但维护成本很高。因为,metadata 字段会随 Apple 上传接口变化、不同上传方式需要的结构可能不同、手写字段出错后,报错会变得更难排查,如果只是为了上传 IPA,手动维护 plist 并不是稳定方案。

使用 AppUploader CLI 自动生成并上传

在 Linux 上,可以使用 AppUploader(开心上架) 的命令行工具完成上传。

Linux 版本的 appuploader_cli 位于下载包的 runtime 目录中。

进入目录后,可以先赋予执行权限chmod +x appuploader_cli

然后执行上传命令:

复制代码
./appuploader_cli --upload-app \
-f Payload.ipa \
-u user@example.com \
-p xxxx-xxxx-xxxx-xxxx \
--type ios

也可以使用子命令写法:

复制代码
./appuploader_cli upload \
-f Payload.ipa \
-u user@example.com \
-p xxxx-xxxx-xxxx-xxxx \
--type ios

这里的参数含义:

  • -f 指定 IPA 文件路径
  • -u 指定 Apple 开发者账号
  • -p 指定 App 专用密码
  • --type ios 指定上传 iOS 应用

执行上传时,CLI 会自动处理上传 metadata,其中就包括 AppStoreInfo.plist,不需要开发者单独生成。

在 CI 里怎么接入

如果 Linux 节点跑在 Jenkins、GitLab CI 或其他发布系统中,可以把上传命令放进脚本:

复制代码
if [ ! -f build/app.ipa ]; then
  echo "IPA not found"
  exit 1
fi

./appuploader_cli upload \
-f build/app.ipa \
-u "$APPLE_ID" \
-p "$APP_PASSWORD" \
--type ios

这样上传流程就变成了一个自动可以重复使用的步骤了:

  • 构建系统产出 IPA
  • Linux 节点检查文件是否存在
  • AppUploader CLI 上传
  • App Store Connect 接收构建

这个过程中,AppStoreInfo.plist 由上传工具自动生成。

在 Linux 上生成 AppStoreInfo.plist,更准确的说法是,上传时自动生成,而不是手动创建。

只要 IPA 已经签名完成,使用 AppUploader CLI 就可以在 Linux 环境中直接上传到 App Store Connect,并自动完成 metadata 处理。

相关推荐
程序鉴定师6 小时前
2026济南十大App制作公司测评(精简版):覆盖小程序、定制开发与跨平台方案
大数据·小程序
问心无愧05136 小时前
ctf show web入门123
android·前端·笔记
想你依然心痛6 小时前
手机远程控制电脑教程:安卓iOS远程桌面推荐、免费工具配置与远程办公技巧
android·智能手机·电脑
黑科技iOS上架6 小时前
Swift6.0多线程特性注意事项
ios
QING6187 小时前
Kotlin 日常开发常用语法糖整理 —— 速记
android·kotlin·android jetpack
斯内普吖7 小时前
(开源)高校素拓分管理系统小程序实战指南 基于 Java + SpringBoot + uni-app + Vue + MySQL
java·spring boot·mysql·小程序·uni-app·开源
方白羽7 小时前
一份 AGENTS.md,让 Android AI 代码规范率飙升
android·app·客户端
杊页7 小时前
第二板块:Android 四大组件标准化学理 | 第八篇:Service 后台执行实体与优先级
android
杊页7 小时前
第二板块:Android 四大组件标准化学理 | 第九篇:BroadcastReceiver 事件分发与有序广播
android