在 Linux 上通过命令行上架 iOS APP,Fastlane + AppUploader(开心上架)

本文介绍了一种 在 Linux 通过命令行上架 iOS APP 的方法,从证书准备、描述文件创建、IPA 构建到命令行上传的完整流程进行了详细说明。文中结合 Fastlane、CI 环境以及 AppUploader(开心上架) 与其命令行工具 `appuploader_cli` 的使用方式,展示了如何在非 macOS 环境中完成 iOS 应用发布,为自动化发布和跨平台开发团队提供了一种可执行的解决方案。

很多团队的 CI 或发布环境运行在 Linux 服务器上,例如 GitLab Runner、Jenkins 或自建构建节点。当应用已经生成 .ipa 文件之后,接下来就是是否可以在 Linux 上直接把 IPA 上传到 App Store?

答案是可以的,关键在于把流程分开,构建 IPA 与上传 IPA 并不是同一件事。

下面说明如何在 Linux 通过命令行完成 iOS 上架流程


一、准备发布所需文件

在 Linux 上传之前,需要准备三个文件:

文件 作用
.ipa iOS 应用安装包
.p12 iOS 发布证书
.mobileprovision App Store 描述文件

这些文件可以来自不同来源:

  • Mac 构建环境
  • CI 构建系统
  • 云打包服务

如果团队没有 Mac,也可以通过 AppUploader(开心上架) 在 Windows 或 Linux 环境生成证书和描述文件。

生成证书的大致流程:

  1. 登录 Apple 开发者账号
  2. 进入证书管理
  3. 创建 distribution 类型证书
  4. 下载 .p12 文件

描述文件创建流程:

  1. 进入描述文件管理
  2. 新建 App Store 类型
  3. 绑定 Bundle ID 与证书
  4. 下载 .mobileprovision 文件

这些文件会在打包或 CI 构建阶段使用。
证书生成


二、在 CI 或 Mac 构建 IPA

Linux 环境通常只负责发布,而不是构建 iOS 应用。

IPA 可以通过以下方式生成:

使用 Xcode

在 Mac 上执行:

Product → Archive

然后导出 App Store 类型 IPA。


使用 Fastlane

如果项目使用 Fastlane,可以通过脚本构建:

lane :release do
  build_app(
    scheme: "AppScheme",
    export_method: "app-store"
  )
end

执行:

fastlane release

生成 .ipa 文件。

构建完成后,将 IPA 上传到 Linux 服务器。


三、在 Linux 安装上传工具

Linux 上无法运行 Xcode 的上传工具,但可以使用命令行上传工具。

其中一种方式是使用 AppUploader CLI

下载 AppUploader 后,可以在压缩包中找到命令行工具。

确认命令可执行:

chmod +x appuploader_cli

四、使用命令行上传 IPA

在 Linux 服务器执行:

appuploader_cli -f app.ipa -u appleid@example.com -p xxxx-xxxx-xxxx-xxxx -c 2

参数说明:

参数 含义
-f IPA 文件路径
-u Apple 开发者账号
-p App 专用密码
-c 上传通道

通道说明:

  • 1 旧上传通道
  • 2 新上传通道

上传成功后,命令行会返回上传状态。


五、在 App Store Connect 查看构建

上传完成后,进入 App Store Connect

My Apps → App → TestFlight

等待 Apple 处理构建。

处理完成后:

  • 可以看到新的构建版本
  • 可以分发 TestFlight
  • 可以提交审核
    asc

六、在 CI 中自动化上传

Linux 命令行上传的一个优势是可以直接集成到 CI。

例如 Jenkins Pipeline:

stage('Upload IPA') {
    sh '''
    ./appuploader_cli \
    -u $APPLE_ID \
    -p $APP_PASSWORD \
    -c 2 \
    -f build/app.ipa
    '''
}

CI 在构建完成后自动上传。


七、常见问题排查

构建未出现在 App Store Connect

检查:

  • Bundle ID 是否一致
  • 构建号是否递增
  • 是否使用 Distribution 描述文件

上传失败

确认:

  • App 专用密码正确
  • 网络未被阻断
  • IPA 文件未损坏

八、Linux 发布流程总结

如果把流程整理成工具组合,会得到如下结构:

阶段 工具
证书生成 AppUploader
描述文件生成 AppUploader
IPA 构建 Xcode / Fastlane
命令行上传 AppUploader CLI
审核提交 App Store Connect

iOS 应用上架流程并不一定绑定在 macOS 上。
如果 IPA 文件已经生成,上传阶段完全可以在 Linux 环境通过命令行完成。

参考链接:https://www.appuploader.net/tutorial/zh/83/83.html