批量上传本地化截图到两大应用商店
deliver/supply)。Mokbi 会渲染每种语言 × 每种设备的组合,并为你把整套图发布到两大商店——通过 Play Developer API 直接推送到 Google Play,同时在 App Store Connect 中准备好,等你最终提交。你正处于发版过程中。截图已经做好了。现在你得把它们放进两大商店,覆盖你支持的每一种语言,以及每家商店要求的每种设备尺寸。这是一个没人提前警告你的环节——也是大家悄悄搜索"bulk upload localized screenshots app store connect / google play all languages"的时刻。
先说实话,好让你不用再找了:两大商店都没有跨语言的原生批量上传功能。你得按语言、按设备尺寸组分组,在网页界面里一批一批地上传。
“没有批量上传”到底意味着什么
在 App Store Connect 中,你打开应用,选择版本,滚动到截图区域,把 PNG 拖进特定的显示类型槽位——6.9"、6.5"、13" iPad 等等。然后切换本地化下拉菜单到下一种语言,再来一遍。Apple 允许你每种设备类型、每种本地化最多添加 10 张截图。图片没有“应用到所有语言”按钮。
Google Play Console 的做法类似。在主要商店信息下,你选择一个地区,然后为每个设备分区上传截图——手机、7 英寸平板、10 英寸平板,还可以选配 Chromebook、Wear OS、Android TV 及更新的设备类型。每种设备类型最多 8 张。切换语言,重复操作。
所以工作单位不是“一套截图”,而是一批 = 一种语言 × 一种设备尺寸组,你得手动填满每一批。
量化一下这个拖放工作量
老老实实数一数批次。在 Apple 这边,一次正常提交至少要填满 iPhone 设备尺寸组和 iPad 设备尺寸组——算它 2 批,如果你在 6.9" 之外还单独维护 6.5" iPhone 套图,那就更多。在 Play 这边,一次正常提交要填手机加两种平板尺寸——算它 3 批,如果再加上 Chromebook 或 Wear OS 就更多。
- 一种语言,两大商店:大约 2 个 Apple 批次 + 3 个 Play 批次 = 5 次手动上传。
- 十种语言:大约 20 + 30 = 50 批要填,每批最多装 8–10 张图。
- 50 种语言:大约 100 + 150 = 250 次独立的拖放上传,这还没算上你去检查每张图是否落进了正确的槽位。
每种语言半小时的拖放工作,这个数字之所以被人反复提起是有原因的。一旦语言数量真的多起来,这就不再是一个任务,而是一整个下午——而且下次发版还要再来一遍。
仅有的两条自动化路径
如果你想完全跳过网页界面,只有两扇官方支持的门,每家商店各一扇:
- App Store Connect API。screenshots 资源让你可以为指定的本地化和设备显示类型,以编程方式创建一套图并上传。你用 API 密钥认证,按语言、按设备尺寸组推送图片。
- Google Play Developer API。
edits.images.upload方法会把一张指定语言和图片类型(phoneScreenshots、sevenInchScreenshots、tenInchScreenshots等)的图片上传到一个待处理的编辑草稿中,之后你再提交这个草稿。
大多数团队不会直接调用这些原始接口,而是在上面用 fastlane:deliver(也叫 upload_to_app_store)驱动 App Store Connect API,supply(upload_to_play_store)驱动 Play Developer API。Supply 甚至会开多个上传线程并发推送本地化图片。这才是真正的“批量上传”——它是一个 API 循环,不是控制台里的一个按钮。
值得说清楚代价:fastlane 意味着一整套 Ruby 工具链、一个 fastfile、商店 API 凭证,以及(在 Apple 这边)常规的代码签名和模拟器配置工作。如果你发版频繁,这就很值。但对于一年只提交几次的应用,为了上传几张图专门搭这套东西,可能比它替代的拖放操作还费事。如果你已经用它来做构建,那加上截图这一步几乎是零成本的。
截图从哪来才是真正的瓶颈
注意,上面每条路径都假设文件已经存在——尺寸正确、每个设备尺寸组一套、每种语言都翻译好了。这才是真正难的部分。App Store Connect API 和 Play Developer API 只是搬运做好的图片,它们不负责设计、调整尺寸或翻译文案。如果你还在用设计工具手动产出 50 种语言 × 5 种设备尺寸的变体,那上传从来都不是你的瓶颈。
这正是 Mokbi 要补上的缺口。你只需搭建一套设计,它就会渲染出每种设备尺寸和 50 种语言里的每一种——文案已翻译、布局已重新排版,每一帧都按对应商店槽位所需的精确像素尺寸导出。输出结果是一整批:一套按语言 × 设备整理命名好的文件,可以直接拖进对应的槽位。
一键发布到两大商店
Mokbi 解决的正是这个问题。你搭建一套设计,它会渲染每种语言 × 每种设备尺寸,并把它们发布到两大商店——通过 Play Developer API 直接推送到 Google Play,同时把套图准备好放进 App Store Connect,等你提交。Apple 要求最终由你点击提交并送审,所以那最后一步仍由你来完成;在此之前的一切都已经处理好了。不再需要手动按语言、按设备逐一上传。
如果你自己的 CI 里已经在用 fastlane 或商店 API,同样导出的文件可以直接喂给 deliver 和 supply。无论哪种方式,设计、调整尺寸和 50 种语言的翻译都已经替你完成了——现在连发布也是。
真正能省下一整个下午的工作流
- 只设计一次。在编辑器里搭建一次轮播图。
- 批量导出整个矩阵。每种设备尺寸 × 每种语言,按精确的商店尺寸,一次导出完成。
- 发布到两大商店。Mokbi 把套图推送到 Google Play,并在 App Store Connect 中准备好等你最终提交——如果你自己跑 CI,也可以把文件交给 fastlane 的
deliver/supply。 - 下次发版,重新导出再来一遍。只改一次设计,重新生成整个矩阵,再次上传。
真正重要的数学:批次数量不会变,但当你放进去的是一个已经做好、尺寸精确的文件,而不是还要先设计和调整尺寸,每一批花的时间会大幅缩短。这就是一整个下午和一杯咖啡的时间的区别。