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

0 阅读3分钟

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

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

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


一、准备发布所需文件

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

文件作用
.ipaiOS 应用安装包
.p12iOS 发布证书
.mobileprovisionApp 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

参数说明:

参数含义
-fIPA 文件路径
-uApple 开发者账号
-pApp 专用密码
-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 环境通过命令行完成。

参考链接:www.appuploader.net/tutorial/zh…