Xcode Assets Configration --> Utils

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容