How to Upload Screenshots to App Store Connect (2026 Guide)
上传 App Store 屏幕截图仍然是发布 iOS、iPadOS 或 macOS 应用时最繁琐的环节之一。苹果支持 每个平台有多种显示类型 并且每个语言都有自己的插槽,因此即使是一个小应用,每次发布最终也可能需要推送 80-200 个文件。本指南介绍了 2026 年将屏幕截图上传到 App Store Connect 的四种 实用方法、何时选择每种方法,以及如果不提前了解就会浪费整个下午时间的注意事项。
选项 1:App Store Connect 网页上传器
默认路径。在 App Store Connect 中打开您的应用,选择要编辑的版本,滚动到屏幕截图,然后将 PNG 或 JPEG 文件拖入 正确的显示类型分区(6.9 英寸、6.5 英寸、13 英寸 iPad、Mac 等)。 对每个语言重复此操作。
- 适合: 首次提交、只有一两个语言的小型应用,或者当您需要精确预览审核人员将看到的内容时。
- 不适合: 任何多语言应用、任何具有超过几种显示类型的应用,或任何您需要在每次发布时重复的工作流。每个语言拖放 30 分钟会快速累积。
常见问题:
- 显示类型错误。如果导出的文件尺寸是 1320 × 2868(iPhone 16/17 Pro Max,6.9")并且您将其放入 6.5" 分区,App Store Connect 将拒绝该上传。
- 版本已锁定。一旦版本进入“正在审核”或“等待开发者发布”状态,屏幕截图将变为只读。请先创建一个新版本。
- 部分上传。如果替换工作流中途失败,请在提交前验证完整的显示类型集,而不是假设旧的图片集仍然完好无损。
选项 2:Transporter 或 Fastlane Deliver
这两个工具都实现了 App Store Connect 交付的自动化,但在打包和配置方面有不同的权衡。
Transporter 是苹果提供的一个免费实用工具,用于交付构建版本和元数据包。它支持脚本化,但前提是您已经拥有一个包含元数据 XML 且兼容 iTMSTransporter 的文件夹结构。如果您已经使用 xcodebuild 构建 IPA 包,那这很棒;但如果您只想上传屏幕截图,那就显得很繁琐。
fastlane deliver 是社区标准。您将屏幕截图保留在类似于 fastlane/screenshots/zh-CN/iPhone 6.9 - 01.png 的文件夹结构中并运行 fastlane deliver。它会一并上传屏幕截图、元数据和关键词。
- 适合: 已经拥有 CI 流水线、希望在 git 中跟踪屏幕截图上传,并且不介意 Ruby 的团队。
- 不适合: 不想维护 Ruby 工具链的设计师,以及任何希望在上传之前通过 GUI 预览将要上传的内容的人。
常见问题:
- 分辨率和命名至关重要。fastlane 可以从图像分辨率推断出显示目标,对于有些定义模糊的 iPad 系列,可能需要在文件名中包含苹果的显示系列名称,才能被正确放入对应的屏幕截图槽位。
- App Store Connect API 密钥必须生成一次并安全存储(Key ID、Issuer ID 和 .p8 文件)。丢失 .p8 意味着需要重新生成。
- 替换是“全或无”。在上传新截图之前,目标显示类型中的每个现有屏幕截图都将被删除。
选项 3:直接调用 App Store Connect API
如果您要自己开发工具, App Store Connect API 通过三个端点公开了屏幕截图上传:
POST /v1/appScreenshotSets— 为特定的显示类型和本地化创建屏幕截图集。POST /v1/appScreenshots— 创建屏幕截图预留,返回上传操作的元数据(分块 PUT URL)。PATCH /v1/appScreenshots/{id},附带uploaded: true— 在所有分块推送完后提交上传。
您可以使用由 .p8 密钥签名的 JWT 进行身份验证。授权 JWT 的有效期很短(最多 20 分钟),并且作用域限定在 App Store Connect API 受众。苹果还会限制过于频繁的上传频率,因此分块并发上传需要实现重试/退避策略。
适合: 构建自定义自动化或工具。您可以获得完全的控制权、类型安全的响应,并且可以围绕上传流程构建用户体验。
不适合: 只想发布产品而不愿维护工具的人。在它稳定运行之前,预计要花费一个周末的时间来处理身份验证、分块上传和错误处理。
选项 4:自动为您上传的设计工具
这就是我们内置于 Screenshot Bro 中的工作流。您设计屏幕截图、添加语言、自动翻译文案,然后点击 上传到 App Store Connect。该应用会:
- 根据您的模板尺寸自动检测正确的显示类型(1320 × 2868 → iPhone 6.9",2064 × 2752 → iPad 13"等)。
- 将您的项目语言与所选版本上的 App Store Connect 本地化语言进行匹配。不匹配的情况会提前指出。
- 运行预检 —— 尺寸过大的文件、缺失的语言、已锁定的版本或平台冲突会在苹果看到任何内容之前显现出来。
- 原子化替换每个匹配的图片集。没有替换了一半的尴尬状态,也不用手动重命名文件夹。
API 密钥(Issuer ID、Key ID、.p8)只需一次性存储在 macOS 的 Keychain(钥匙串)中。配置完成后,之后的每次发布都只需一键完成。
您应该选择哪种方案?
一个粗略的决策树:
- 单一语言、单一应用、很少更新。 网页上传器就足够了。
- CI 流水线、git 跟踪的屏幕截图、传统 Ruby 团队。 fastlane deliver。
- 自定义工具 / 内部自动化。 直接使用 API。
- 独立开发者或小型团队,自己设计并提交屏幕截图。 使用能将设计和上传整合进同一个流程的原生 Mac 和 iPad 应用。
上传之前:检查清单
无论您选择哪种路径,以下都是最耗费时间的错误:
- 您的屏幕截图尺寸必须完全符合 支持的尺寸 —— 像素不能有半点偏差。苹果可能会在上传或处理过程中拒绝不匹配的文件。
- 所选的 App Store 版本是可编辑的(不是“正在审核”或“等待开发者发布”)。
- 您计划上传的每个语言,都必须在所选版本上启用了相匹配的 App Store Connect 本地化语言。
- 仅支持 PNG 或 JPEG。不支持 HEIC、WebP 以及渐进式 JPEG。
- RGB 色彩空间,并且截图不能包含 alpha 通道。
简而言之 (TL;DR)
对于任何重复性的操作,网页上传器都是最无趣的选择。对于频繁交付的团队来说,fastlane 是默认选项。直接使用 API 很强大,但需要花费一个周末的工作量。如果您想直接从设计应用一键上传,这正是 Screenshot Bro 研发 上传到 App Store Connect 功能的初衷 —— 自动检测显示类型、语言匹配、预检,并且只需一个存储在钥匙串中的 API 密钥。