33. 适配iPhoneX,iOS项目添加启动图片LaunchI

作者: 春田花花幼儿园 | 来源:发表于2017-09-21 22:34 被阅读1993次
    启动图片

    测试环境:

    • 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吧。

    LaunchImage

    然后把启动图片添加到工程 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 命名,图片数量和官方demo比对

    注意:官方demo的《Application Icons and Launch Images for iOS》

    下边说添加iPhone X的启动图片,把图片拖进文件夹后,需要在info.plist文件的 UILaunchImages中添加Item,具体添加内如如下:

    info.plist

    注意:
    (1) 打包ipa包上传到iTunes Connect中,会检查工程中是否添加了完整的启动图片,之前的经验,这种添加启动图片和图标的方式打包上传的话,如果图片命令有问题,直接在Application Loader校验阶段就会报错,拒绝上传请求。 但是我前边说过,没有查到官方指定的iPhone X启动图片的命名,也没有试过这种添加方式上传会不会有问题被拒绝,等到试验后告诉大家。
    (2) 多target不要忘了每个info.plst都添加!

    在LanunchScreen.xib中设置启动图片

    因为出现的时间较近,很多老项目都没有采用,新项目没采用。所以偷懒不说了,官方原话是推荐这种方式,然后添加一张static image图片。我查阅,但是没了解该图片是什么意思,类似pdf格式的?
    有兴趣的朋友可以试验下该种方式,或者有文章,在评论里留言和简信我,我添加到此位置!

    官方说明
    1. 《iPhone X》
    2. 《Launch Screen》

    demo地址

    《ApplicationIconsandLaunchImagesforiOS》

    交流


    希望能和大家交流技术
    Blog:http://www.lilongcnc.cc


    相关文章

      网友评论

      • 红发_KVO:老铁,如果我 ipa 二次打包,按照文件夹的方式替换启动图和 icon,也是按照你现在的图片命名和规格替换就好了嘛?
        春田花花幼儿园:@红发_KVO 命名得跟着项目里边的启动图片和图标的名字走吧,这个你可以试试呢
      • 热血足球2016:文章写得很不错,但是这里只有一种方法,记得李明杰大神说推荐使用LanunchScreen.xib,还有大大是做马甲包的吗?
      • _喵了个喵_:用的 Images.xcassets ,拉进去一个x的启动图,结果运行虚拟机的时候走完x的启动图还会再出来一个启动图,知道是什么原因么
        春田花花幼儿园:@Angele一闪一闪 没用过你说的这个
        _喵了个喵_:@春田花花幼儿园 另外还用了一个插件 splashscreen,应该是这个插件没有更新适配x,所以导致有两张启动页,求助,有没有可以更新这个插件的
        春田花花幼儿园:@Angele一闪一闪 没遇到过这种情况.....真机没问题就没问题
      • SilveryApril:不知道为什么,“放到普通文件夹下,在info.plist文件中加key”的这种方法,我没有试验成功。或者说没有针对iPhoneX试验成功。使用iPhoneX模拟器启动的时候,加载的始终是info.plist中添加的其他的启动图,也不知道是不是命名的原因。但是命名和添加的过程,我都是按博主的步骤来的,不知道为什么就是没有达到预期的效果。如果博主知道原因的话,还望不吝赐教。
        春田花花幼儿园:https://github.com/lilongcnc/JianSuDemos/tree/master/ApplicationIconsandLaunchImagesforiOS

        第一个target,貌似有时候添加好,就失效了。直接是复制那个{375,1132}的字典,才好使。 注意,删除了已安装app之后再重新安装。
        我推荐还是用Images.xcassets,这个文件夹也是可以整个替换的。连得里边的Contents.json一起复制替换
        SilveryApril:@春田花花幼儿园 3Q~~
        春田花花幼儿园:@SilveryApril 晚些,我附上demo
      • 十一岁的加重:加了张图片
        春田花花幼儿园:@十一岁的加重 主要解决普通文件夹中加启动图片的问题,承接我之前文章的OEM版本发布,如果只有一两个app上架,就不需要

      本文标题:33. 适配iPhoneX,iOS项目添加启动图片LaunchI

      本文链接:https://www.haomeiwen.com/subject/jytxextx.html