美文网首页
Xcode Assets Configration -->

Xcode Assets Configration -->

作者: ibabyblue | 来源:发表于2017-04-21 11:37 被阅读53次

Xcode设置AppIcon和LaunchImage图片资源,需求图片的尺寸、需求此图片的位置等问题总是很朦胧,每次设置总是Google一下就OK了,趁公司项目告一段落,决定就此问题深入研究一下,这里记录一下自己遇到的问题与填坑经历!


图片资源的提取

首先利用工具提取某APP中得图片资源,这种方式非常简便、易操作!喜欢那个App的图片资源都可以,比较随意!
没有请美工朋友帮忙原因有三:

  • 费时又费力:(费时:朋友和自己的时间)(费力:那就是朋友的事了...O(∩_∩)O)
  • 欠人情:毕竟朋友工作也很忙哒!有句话怎么说的来滴?能动手的尽量别吵吵!额.....sorry,自己动手丰衣足食!对!就是这句!
  • 沟通成本:我的需求需要和朋友之间沟通,这无疑就增加了沟通的成本。

所以苦逼的事还是自己来吧!毕竟这不是公司的项目,只是自己的爱好领域的研究!其实研究一下还是很好玩的!
推荐一款图片资源提取工具:


Extrac.png

非常简单好用的图片资源提取工具!使用步骤如下:
步骤一:在iTunes内下载某个App的ipa文件,下面我是提取的新浪微博的App,因为新浪微博在天朝是很有代表性的社交软件,个人也比较喜欢刷微博,因此偶就选择了它!罪过!罪过!现在iTunes下载不了APP了。

新浪微博.png

步骤二:
打开图片提取工具Extract:

Open Extract.png

如上图所示,将ipa文件拖拽到Extract工具相应的图标内即可提取图片文件!
步骤三:
拖拽文件至Extract工具!

拖拽文件至Extract.png

步骤四:

Extract工具正在处理中.png

步骤五:
当Extract工具处理完成后,会产生一个存放提取图片的文件夹,例如:

Paste_Image.png

这里文件夹目录截屏截不全,目录结构为:图标提取/年-月-日/时-分-秒/微博 7_3_0_ipa/xx.png
到此图标的提取就完成了!所需图片在全在此文件夹内!

新建Xcode工程 设置AppIcon和LaunchImage图片

  • 设置AppIcon图标:
设置AppIcon图标.png

点击App Icons Source 后面的灰色向右的箭头:
初始状态如下图所示,Xcode8创建iphone项目,默认就只支持iOS7.0及以后,当然可以选择你需要支持的iOS版本。

初始AppIcon设置.png

点击选择支持版本

选择支持版本.png

选择iOS1.0 and later

新增AppIcon图标类型.png

这些图标的都是些什么鬼呢?其实在不用看官方文档我们也可以猜出来的!右键点击AppIcon,选择Show in Finder,如下:

选择Show in Finder.png

右键选择Contents.json文件,选择Xcode打开:

选择Contents.json文件.png

Contents.json文件的内容如下:

Contents.json.png
我们可以看出由键值“images”对应的字典数组内,是由不同尺寸的AppIcon字典组成!“size”键值对应为图标大小(点为单位),“scale”键值对应为@2x图标还是@3x图标!这些都为系统自动生成的!在这里就能知道需要图标的尺寸!但是接下来还是需要看看官方文档,哪些图标是必须的,除非你有所有尺寸的图标,就不需要担心了!但是图标尺寸不全,我们只需要将必须的图标设置好,即使不设置其它不必要的图标也是OK的!
快捷键command+shift+0 打开苹果官方文档!
在线浏览可能会有点慢,毕竟在墙内,翻墙吧或者下载到本地浏览也是可以的!
点击搜索栏,输入Icons即可: Search Icons.png

使用向导中存在非常简单明了的图表Icons for iPhone-only Applications:

Icons for iPhone-only Applications.png

其中File Name命名规则可以自定义,因为我在设置的时候,发现新浪微博的图标命名规则与文档中得命名规则并不相同,但是使用时也是可以的!Used For为使用图标的位置,App Store和Ad Hoc哪些图标是必须的,哪些是可选但推荐的等等!

  • 设置AppIcons
    将提取的新浪微博的AppIcons图标拖拽到新创建的MyBlog工程的AppIcon内,如图:图标会自动对应显示!
AppIcon Configration.png

接下来看下AppIcon目录下的Contents.json文件内容有何变化!

配置AppIcon图标后的Contents.json文件.png

可以看出每个图标对应的字典多出了一个键值对,“filename”键对应尺寸相应AppIcon图标!

  • 设置LaunchImage
    如下图所示:


    设置LaunchImage.png

接下来点击Launch Images Source 右侧的向右的灰色按钮,跳转如下界面:

Paste_Image.png

勾选图中红色箭头所指的选项,因为创建的工程为iPhone工程,并只支持竖屏,所以这里只勾选iPhone竖屏的情况即可!
后续的设置和AppIcons设置基本相同,但是LaunchImage图标的命名规则是需要遵循官方文档的命名规则!
其Contents.json文件内容如下:

LaunchImage Contents.json.png

“subtype”键对应的值为需要显示LaunchImage的尺寸!
下面列举的情况请与上图字典列表对号入座!

  • 不存在“subtype”键,存在“scale”键!
    • “scale”键对应的值为1x,则为非retina屏3.5inch屏幕。
    • “scale”键对应的值为2x,则为retina屏3.5inch屏幕。
  • 存在“subtype”键,存在“scale”键!
    • “subtype”键对应的值为“retina4”,“scale”键对应的值为2x,则为retina屏4inch屏幕。
  • 存在“subtype”键,存在“scale”键, 存在“minimun-system-version”键!
    • “subtype”键对应的值为“736h”,“minimun-system-version”键对应的值为8.0,“scale”键对应的值为3x,则为retina屏5.5inch屏幕。
    • “subtype”键对应的值为“667h”,“minimun-system-version”键对应的值为8.0,“scale”键对应的值为2x,则为retina屏4.7inch屏幕。
  • 不存在“subtype”键,存在“scale”键, 存在“minimun-system-version”键!
    • “minimun-system-version”键对应的值为7.0(最小iOS版本为7.0),“scale”键对应的值为2x,则为retina屏3.5inch屏幕。
  • 存在“subtype”键,存在“scale”键, 存在“minimun-system-version”键!
    • “subtype”键对应的值为“retina4”,“minimun-system-version”键对应的值为7.0(最小iOS版本为7.0),“scale”键对应的值为2x,则为retina屏4inch屏幕。

最下面存在“minimun-system-version”键对应的值为7.0的两个字典为下图中箭头指向的红色框内所示图标对应的字典!


删除Unassigned类型.png

删除之后我们看下Contents.json文件有什么变化呢?

删除Unassigned类型后Contents.json.png

可以看出最下面的两个字典消失了!OK!到这里只要将对应的LaunchImage图片拖拽进去就OK了!
Like This:

设置LaunchImage.png

记录坑坑
在设置AppIcon和LaunchImage的时候,设置不合适的时候我就会删除重新设置,来折腾了几次之后,开始报错了!而我也是一脸懵圈!莫名其妙啊!
错误提示:“xxx: resource fork, Finder information, or similar detritus not allowed”
检索资料,开发者解决方案:

  • 方案一:删除DerivedData缓存文件
    • 对我来说并没有什么卵用
  • 方案二:进入工程目录与DerivedData目录;命令行执行“xattr -rc .”
    • 对我来说依然没有什么卵用
  • 方案三:StackOverFlow的大神写了个脚本,用于处理此种情况,对于脚本我不太明白,所以采用利用工具删除碎屑,后续有时间在研究下大神的脚本吧!
    • 解决问题,应该是资源文件元数据错误!

清除碎屑工具
CleanDetritus

CleanDetritus.png

点击下图中的Clean it,然后打开你的工程目录就可以,此App会自动为你删除碎屑文件,而且还会输出Log!非常简单易用!

清除碎屑文件.png

清除碎屑文件之后,记得Clean一下工程(养成好的习惯吧!有时候Xcode会存在缓存!)。运行工程-> Success,Done!
Zeb

相关文章

网友评论

      本文标题:Xcode Assets Configration -->

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