测试环境:
- Xcdoe 9
- iOS11
这篇文章,主要是解决公司发布多个马甲app,启动图片和图片放到了项目普通文件夹下的情况,文章可以参考我之前写的。 如果公司只是固定的产品,那直接放到Images.xcassets 下或者使用LanunchScreen.xib是最好的选择!
首先,iOS项目添加启动图片有三种方式:
(1) 放到工程 Images.xcassets 文件夹下的中的【LaunchImage】图片集合中。
(2) 放到工程下的普通文件夹中。
(3) 在LanunchScreen.xib中设置启动图片
下边,我就iOS项目这三种方式,以适配iPhone X为例子进行说明。
iPhone X的启动图片格式
iPhone X的启动图片就一张,格式是1125px × 2436px (375pt × 812pt @3x)。
这里@3x说明iPhone X的其他图标都是 @3x图,和启动图片没什么关系。你让美工或者自己弄一张,大小是1125 × 2436的图片就可以了!
至于图片的命名,查阅了官方文档,没有发现命名方法,如果有知道的朋友,请千万告诉我一下!万分感谢! 暂且,我依照苹果命令规范,将iPhone X的启动图片命名为Default-iOS11-812h@3x.png
【LaunchImage】图片集合
如果没有创建【LaunchImage】图片集合的话,可以通过
- step A: Target-> General
- step B: App Icons and Launch Images
- step C: 在【Launch Images Source】选项下点击点击 Use Asset Catalog 来设置 【LaunchImage】图片集合。
注意一: 刚创建【LaunchImage】集合,可能选项的位置并没有如下图显示的这样。这个时候重启下项目就好了,算是Xcode的一个bug吧。
然后把启动图片添加到工程 Images.xcassets 文件夹下的中的【LaunchImage】中。
注意二: 如果你只是添加单张图片进去,不识别。那直接把之前已经放的图片删除掉,加上iPhone X的启动图片重新拖动一下就好。
最后结果如下图:
网上很多说法是,把iPhone X的启动图片拖进去,还需要在在LaunchImage中的Contents.json文件中增加
{
"extent" : "full-screen",
"idiom" : "iphone",
"subtype" : "2436h",
"filename" : "图片名字.png",
"minimum-system-version" : "11.0",
"orientation" : "portrait",
"scale" : "3x"
}
这里我实验的结果是,直接拖进之后,这段json就已经生成了,不需要手动添加。
放到工程下的普通文件夹中
这种方式需要对启动图片(应用图标也是)的格式,命名,数量都有要求。并且需要在对应的Info.plist中设置一些参数。 这部分设置可以在我之前写的《26- iOS项目基础一 - 官方应用图标和启动图片的尺寸规范和相应的工程设置》中查看,也可以在下载官方Demo自己比对。
注意:官方demo的《Application Icons and Launch Images for iOS》
下边说添加iPhone X的启动图片,把图片拖进文件夹后,需要在info.plist文件的 UILaunchImages中添加Item,具体添加内如如下:
注意:
(1) 打包ipa包上传到iTunes Connect中,会检查工程中是否添加了完整的启动图片,之前的经验,这种添加启动图片和图标的方式打包上传的话,如果图片命令有问题,直接在Application Loader校验阶段就会报错,拒绝上传请求。 但是我前边说过,没有查到官方指定的iPhone X启动图片的命名,也没有试过这种添加方式上传会不会有问题被拒绝,等到试验后告诉大家。
(2) 多target不要忘了每个info.plst都添加!
在LanunchScreen.xib中设置启动图片
因为出现的时间较近,很多老项目都没有采用,新项目没采用。所以偷懒不说了,官方原话是推荐这种方式,然后添加一张static image图片。我查阅,但是没了解该图片是什么意思,类似pdf格式的?
有兴趣的朋友可以试验下该种方式,或者有文章,在评论里留言和简信我,我添加到此位置!
demo地址
《ApplicationIconsandLaunchImagesforiOS》
交流
希望能和大家交流技术
Blog:http://www.lilongcnc.cc