启动图 storyboard 不是一张图,是要交对的那套东西

启动图 storyboard 不是一张图,是要交对的那套东西

先讲一个我亲眼见到的翻车现场。

一个做记账应用的小哥,把包提上去,其他材料都齐了,就差启动图。他以为启动图就是一张 PNG,找美工画了一张 logo 放中间,导出成 1242×2208,往项目里一塞,就提交了。

第二天回来,拒信上写的是那一长串英文,翻译过来一句话:启动屏不符合要求,请使用 storyboard。

他给我发消息,连着三个问号:storyboard 是什么?我不是已经放了启动图吗?到底要我交什么?

这大概是 iOS 上架里最容易卡住、又最容易被当成"小事"的一环。安卓那边启动图就是一张图,iOS 这边不一样。

苹果要的不是一张死图

安卓的启动图,你给一张图片,它拉伸一下铺满屏幕,完事。苹果从 iOS 14 之后基本只认一个东西:启动屏要用 storyboard 来表达。

storyboard 说白了,是给系统描述"启动那零点几秒里,屏幕上要摆什么、摆在哪里"的一套定义。它不是一个图片文件,是一个 XML 一样的结构文件,里面告诉系统:这个标签放在左上角,那行字在中间,图标离底部多少距离。系统拿到这个文件,再根据每一台 iPhone、iPad 的实际分辨率去铺。

为什么苹果要这么改,有它自己的考虑:不同机型屏幕尺寸差得远,一张死图要么被裁,要么被拉变形,出来的效果七扭八歪。用 storyboard 之后,布局是相对的,换什么机型都能对得上。

所以那个小哥被拒,不是他图做得丑,是从根上就交错了东西——把"定义"当成了"图片"。

常见错误,几乎都错在同一个地方

我把这几个月碰到的翻车,归成三类。

第一类,就是上面那种,直接塞一张图。要么被拒,要么侥幸过了,到了新机型上启动页位置全歪。

第二类,有人知道 storyboard,但打开 Xcode 不会配,网上抄了一段,约束加错。结果图标在模拟器上看着好好的,真机上被挤到屏幕外去了。审核员打开一看,启动页是空的,或者图标半个身子卡在边缘,直接打回。

第三类,更隐蔽一点:storyboard 里引用的那张图,文件名、大小写、或者放的位置不对。打包的时候能过,跑到设备上启动页干脆白屏。这种最气人,因为你自己本地测的时候可能没测到启动页这一步。

说穿了,storyboard 这件事难不在"画",难在"交对"。约束、引用、尺寸,任何一个地方错一点,就白搭。

那到底该怎么交

如果你有 Mac、有 Xcode,自己也能弄,但要注意三个点。

一是图标不要用大图铺满,启动页讲究克制,一个居中的 logo 加一个应用名就够了,留白比塞满更稳。

二是约束要对齐安全区,别用绝对坐标。绝对坐标在小屏上好好的,到了大屏就漂。

三是引用的图片名和资源要对应上,大小写敏感,放错目录就白屏。

这几步听起来简单,真自己第一次弄,基本都要返工一两次。而且最关键的是——很多做 iOS 的人,压根没有 Mac。

没有 Mac 的情况,Xcode 都开不了,storyboard 这个文件从哪来就成了死结。这时候比较省事的路子,是找平台代做启动图 storyboard,把应用名、图标这些交过去,人家按规范生成好,你直接拿回包里。初雪云这边就有单独的 storyboard 生成这一项服务,跟远程打包、上架这些是分开列的,单独要这一项也能办。

别把启动页留到最后一天

我最想提醒的其实是节奏。启动图 storyboard 这种东西,经常被排在所有事情的最后面,觉得"不就一张图吗,随手就弄了"。

真到提审前一天,才发现要么没 Mac,要么 storyboard 配不对,这时候就晚了。它虽然是个小东西,但它是审核的前置项,缺了它,你后面准备得再充分也提交不上去。

所以我的建议很实在:决定上 iOS 的那一刻,就顺手把启动图 storyboard 这件事列进清单,别等最后。

这里再多说一句预算和取舍。自己配,成本主要是时间,前提是你手里有 Mac、也愿意啃 Xcode 那套约束语法;找平台代做,钱不多,图个省事和一次到位。两条路没有绝对的好坏,看你自己手上有什么、时间紧不紧。别图省那点钱,最后让一个启动页把整个提审节奏拖垮,那才是真的贵。

最后说一句题外话。那个记账的小哥后来用 storyboard 重新交了一次,过了。他跟我说,早知道是一套定义不是一个文件,第一轮就不该栽在那儿。你看,卡住人的往往不是多难的技术,是没搞清自己要交的东西,到底是啥。