Deliver (Fastlane) — 是什么、上传到 App Store 以及在 iOS 和 Android 开发中的配置

作者: IT Sectr 发布日期: 2026-04-15 阅读时间: 10 分钟

Deliver (Fastlane) 是一个用于将应用上传到 App Store Connect 的工具:二进制文件、元数据、屏幕截图和价格。与通过 App Store Connect Web 界面手动发布不同,Deliver 通过一个命令自动化发布的所有阶段。根据 Fastlane 官方文档 (2026)Deliver 将发布发布时间从 40 分钟缩短到几秒钟。

要点

  • Deliver 是一个 Fastlane 工具,用于自动将应用、元数据和屏幕截图上传到 App Store Connect。
  • 该工具支持上传二进制 IPA 文件,通过 App Store Connect API 管理描述、关键词和价格组。
  • 屏幕截图会自动上传到所有设备和语言 — Deliver 自行将截图尺寸与 Apple 对每种屏幕类型的要求相匹配。
  • 通过 Deliverfile 文件进行配置,其中指定应用的元数据、价格组和屏幕截图路径。
  • 通过带有 --preview 标志的 deliver --force 命令预览更改,可以在实际上传到 App Store 之前检查元数据。

什么是 Deliver (Fastlane)?

Deliver (Fastlane) 是 Fastlane 生态系统的一个组件,用于自动将移动应用发布到 App Store 的过程。它管理二进制文件的上传、元数据(名称、描述、关键词)的更新、屏幕截图的上传以及所有本地化语言的价格设置。

没有 Deliver,每次发布都需要通过 App Store Connect Web 界面手动更新信息:用多种语言填写描述、为每种屏幕尺寸上传屏幕截图、更新关键词和设置价格。发布到 App Store 是 iOS 应用生命周期的最后阶段,包括验证二进制文件、内容审核和应用发布到生产环境。

根据 App Store Connect 文档 (2025),定期更新的应用获得的重新安装量增加 30%,并且在搜索中排名更高。Deliver 使得团队可以每周发布更新,自动化发布的常规步骤,并降低在数十种语言中填写元数据时的人为错误风险。

对任何在 App Store 中发布的应用使用 Deliver — 对于具有多语言本地化的项目尤其有价值,因为手动更新 32 种语言需要几个小时。

Deliver 如何与 App Store Connect 配合使用

Deliver 的工作机制 基于两阶段过程。在第一阶段,该工具准备元数据 — 检查 Deliverfile 结构、加载屏幕截图并生成更改清单。在第二阶段,Deliver 将数据发送到 App Store Connect API,上传二进制文件并启动 Apple 方面的构建验证过程。

Deliver 使用 App Store Connect API 进行所有操作,这保证了与 Apple 新要求的兼容性,并排除了使用私有接口。App Store Connect API 是 Apple 官方的 REST API,用于自动化应用操作,包括上传构建、管理元数据和跟踪审核状态。

上传二进制文件

Deliver 通过 Fastlane 直接与 Gym 集成:在 IPA 构建之后,Deliver 将其上传到 App Store Connect 并启动处理过程。--ipa 参数指定二进制文件的路径。如果未指定参数,Deliver 会自动在 Gymfile 中指定的或通过 Fastlane 先前步骤传递的构建目录中找到最后一个 IPA。

上传后,Deliver 等待 Apple 完成二进制文件的处理 — 类似于 Pilot,通过进度条跟踪状态。可用状态:ProcessingWaiting For ReviewIn ReviewReady For SaleRejected。Deliver 通过 Fastfile 中的回调通知团队每次状态更改。

管理应用元数据

Deliver 管理应用的完整元数据集:名称、描述(简短和完整)、关键词、支持和营销 URL、类别和年龄分级。应用元数据 是在 App Store 页面上显示的关于应用的文本信息,用于搜索索引和 ASO 优化。

--submit_for_review 参数在上传元数据后立即将应用发送到审核。这是完全自动化发布的关键参数。没有它,Deliver 仅上传数据但不发送应用进行审核 — 这对于在实际提交之前预先检查所有字段很有用。

处理屏幕截图

Deliver 从指定目录自动上传所有设备和语言组合的屏幕截图。文件名必须符合模式:第一个插槽中 6.5 英寸对角线 iPhone 的 iPhone_6.5_01.png。Deliver 自行确定屏幕截图的尺寸并将其与 Apple 对每种设备类型的要求相匹配。

屏幕截图按正确顺序上传,并为每种本地化语言单独上传。如果某种语言未找到屏幕截图,Deliver 使用英文版本作为后备选项。屏幕截图本地化 是希望在各个国家的 App Store 中获得良好排名的应用的强制要求,因为 Apple 在搜索结果中考虑本地内容。

bash
# 上传到 App Store 的基本命令
fastlane deliver

# 指定元数据和屏幕截图的上传
fastlane deliver --ipa "build/MyApp.ipa" \
      --force --submit_for_review

# 不上传的预览
fastlane deliver --preview

通过 Deliverfile 配置 Deliver

Deliverfile 是一个 Fastlane 配置文件,用于以结构化的 Ruby 格式存储应用元数据。与在 App Store Connect 中手动填写表单不同,Deliverfile 允许在 Git 中对元数据进行版本控制,并在发布前通过代码审查检查更改。

ruby
# Deliverfile — 应用元数据
app_identifier("com.company.app")
title("MyApp")
description("应用商店的应用描述")
keywords("移动、应用、ios、swift")
support_url("https://company.com/support")
marketing_url("https://company.com")
privacy_url("https://company.com/privacy")

# 元数据本地化语言
languages(["en-US", "ru", "de"])

languages 参数确定将为哪些语言上传元数据。对于每种语言,必须在 fastlane/metadata 文件夹中创建一个单独的目录,包含相应的描述、关键词和营销文本文件。Deliver 同时支持多达 32 种 App Store 语言。

上传屏幕截图使用 Fastlane 文件夹内的 screenshots 目录。文件夹结构:screenshots/[语言]/[设备类型]_[屏幕尺寸]_[编号].png。Deliver 自动为指定的语言和设备上传屏幕截图,将尺寸与 Apple 要求相匹配。建议使用 Snapshot 生成屏幕截图 — 其输出格式与 Deliver 兼容。

价格组通过 price_tier 参数配置,该参数接受从 0 到 87 的价格级别编号。Apple 的价格组会自动转换为所有存在国家的货币。Deliver 允许在发布范围内更改价格,这对于临时促销或更改应用的商业模式很有用。

用于发布应用的 Deliver 命令

Deliver 界面 包括用于上传元数据、二进制文件、屏幕截图和完整发布的命令。不带参数的主要命令 fastlane deliver 使用 Deliverfile 和 metadata 目录中的数据完成完整的发布周期。

fastlane deliver --preview 命令启动元数据的预验证,而不实际上传到 App Store Connect。--force 是上传所必需的 — 没有它,Deliver 以预览模式运行。--skip_binary 参数仅上传元数据和屏幕截图,跳过上传二进制文件 — 这方便快速更新 ASO 字段而无需新发布。

bash
# 上传二进制文件的完整发布
fastlane deliver --force --ipa "build/App.ipa"

# 仅上传元数据而不上传二进制文件
fastlane deliver --force --skip_binary

# 仅更新屏幕截图
fastlane deliver --force --skip_metadata

--skip_metadata 参数仅上传屏幕截图和二进制文件,保持现有元数据不变。这对于热修复发布很有用,当需要快速发布修复而不更改描述和 ASO 字段时。标志的组合允许灵活地单独管理发布的每个阶段。

Deliver 命令用途标志
deliver完整发布,包含元数据和二进制文件--force, --ipa
deliver --skip_binary仅更新元数据和屏幕截图--force
deliver --skip_metadata上传二进制文件和屏幕截图,不更改 ASO--force, --ipa
deliver --preview元数据预检查不带 --force
deliver --submit_for_review自动发送审核--force, --ipa

将 Deliver 集成到发布管道中

发布管道 与 Deliver 结合 — 是一个完整的 iOS CI/CD 流程,自动化从提交到发布到 App Store 的所有阶段。典型管道包括:用于证书的 Match、用于 IPA 构建的 Gym、用于屏幕截图的 Snapshot 以及用于将所有数据上传到 App Store 并随后发送审核的 Deliver。

Deliver 在管道中的关键特性 — 支持 metadata.json,它以结构化的 JSON 格式存储元数据。这允许从外部 CMS 系统以编程方式生成元数据,或通过翻译 API 自动创建多种语言的描述。

bash
# Fastfile 中的发布管道
lane :release do
    match(type: :appstore)
    capture_screenshots
    gym(scheme: "MyApp", export_method: "app-store")
    deliver(ipa: "build/MyApp.ipa", force: true, submit_for_review: true)
end

在管道中调用 Deliver 之前,请确保所有元数据都是最新的:描述与新版本匹配,屏幕截图已更新以反映新功能,且价格组不需要更改。Submit for review 将应用发送到 Apple 审核,新应用需要 24 到 48 小时,更新需要 2 到 12 小时。

Deliver 支持 app_version 机制,允许指定用于更新元数据的目标版本。如果未指定版本,Deliver 会更新 App Store Connect 中当前活动的应用版本。要发布新版本,需要先通过 App Store Connect 界面或 API 创建相应的版本。

使用 Deliver 时的典型错误

使用 Deliver 时,开发人员经常遇到元数据验证错误、屏幕截图文件结构不正确和身份验证问题。错误诊断 从分析命令日志开始 — Deliver 显示每个上传阶段和拒绝原因的详细信息。

当屏幕截图的文件夹结构与预期格式不符时,会出现 无效的屏幕截图路径 错误。解决方案:检查屏幕截图文件名是否符合模式 DeviceType_ScreenSize_Number.png(例如 AppleiPhone15ProMax_6.7_01.png)。Deliver 对文件名中的大小写和分隔符敏感。

元数据验证失败 错误表示元数据不符合 App Store 要求。解决方案:检查描述长度(最多 4000 个字符)、关键词(最多 100 个字符)和名称(最多 30 个字符)。App Store 审核指南 包含每个元数据字段的完整要求 — 建议在每次发布前进行检查。

当使用指定的 apple_identifier 在 App Store Connect 中找不到应用时,会出现 未找到 Apple ID 错误。解决方案:在首次调用 Deliver 之前通过 Web 界面在 App Store Connect 中创建应用记录,指定 Bundle Identifier 和名称。Deliver 不创建新应用 — 它只更新商店中的现有记录。

常见问题

Deliver 可以上传 iPad 和 macOS 的应用吗?

是的,Deliver 支持上传 iOS、iPadOS、macOS、tvOS 和 watchOS 的应用。对于每种应用类型,需要指定为相应平台编译的正确 IPA 文件。Deliver 从 App Store Connect 应用记录中自动确定平台。

Deliver 如何处理 32 种语言的本地化?

Deliver 从 fastlane/metadata/[lang] 目录读取每种语言的元数据。如果某种语言未找到文件,Deliver 使用英文值作为后备。屏幕截图从 screenshots/[lang] 目录为每种语言单独上传。

Deliver 是否需要关闭双重身份验证?

不需要,不需要关闭双重身份验证。Deliver 使用 App Store Connect API 密钥进行身份验证,该密钥独立于 2FA 工作。API 密钥在 App Store Connect 中生成,允许在无需交互确认的情况下执行所有操作。

如何通过 Deliver 取消已提交审核的更新?

使用 fastlane deliver --reject 命令,它可以撤回已提交审核的应用。这只有在审核尚未开始时才可能 — 检查开始后,只能通过 App Store Connect Web 界面取消更新。

在 Fastlane 生态系统中,Deliver 和 Pilot 有何不同?

Pilot 管理 TestFlight 中的 Beta 构建:上传二进制文件,分发给测试组。Deliver 负责生产发布:将元数据、屏幕截图和二进制文件上传到 App Store 供最终用户使用。Pilot 用于 Beta 测试,Deliver 用于发布。

总结

  • Deliver 是一个 Fastlane 工具,用于自动在 App Store 中发布应用,支持二进制文件、元数据和屏幕截图。
  • Deliverfile 以可版本化的 Ruby 格式存储元数据:描述、关键词、URL、价格组和用于 ASO 优化 的本地化语言。
  • 屏幕截图根据模式 DeviceType_Size_Number.png 从结构化目录自动上传所有设备和语言组合。
  • 主要命令:deliver 用于完整发布,--skip_binary 用于更新元数据,--preview 用于不上传的预检查。
  • 通过 Fastfile 的 CI/CD 集成将 Match、Snapshot、Gym 和 Deliver 从提交到 App Store 整合到一个发布管道中。
  • Deliver 的典型错误与屏幕截图结构不正确、超出元数据限制以及 App Store Connect 中缺少应用记录有关。

我们将开发一款交钥匙移动应用程序

IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。

讨论项目

另请阅读