关于设置iOS应用AppIcon的探索

我们可能面临这样的需求——同一系列的iOSApp产品,需要分开发布不同的版本。例如一款幼儿教育类App,需要针对幼儿家长、教师开发不同功能需求的产品;或者一款产品测试的时候一套AppIcon,上线的时候另一套AppIcon。诸如此类,在不同情形使用不同的AppIcon。通常由于这样的系列App功能大同小异,所以会选择在同一个工程中开发。

不同的版本会对应不同的BundleIdentifier,Appicon无可厚非。设置BundleIdentifier还好说,但是设置AppIcon却有很繁复。我不知道您是否遇到过这样的需求,小伙伴们是怎么处理的?

在此之前用到的方法就是在工程中文件路径下建两个文件夹,例如iconPRO、iconDEV,每个文件夹放各自的AppIcon。(请注意,这两个文件夹不要添加到工程中)。每次打包的时候把对应文件夹中的图片copy出来,添加到工程中。

这样的方式,是有些繁复的。有木有通用的解决方式呢?最近对于这些方面的问题作了一些探索。首先要明白一点,在工程中有一个info.plist的文件,在这个文件中Icon files存放了appicon的文件名。通过$(PRODUCT_BUNDLE_IDENTIFIER)可以拿到当前一个应用程序的bundleid。如果文件名能跟bundleid关联起来,这个文件名随bundle而改变,这样似乎可以解决问题。

我们事先把不同版本所需要的appicon放在工程中,例如放在文件夹iconApp,并把它添加到工程中。假如两个版本对应的bundleid为com.owner.weekly和com.owner.daily。

命名规则如下:


iconApp.jpg

添加到工程中(而不是Assets.xcassets中):

iconNavigator.png

然后设置info.plist文件中Icon files.如下:

iconPlist.jpg

这样基本的配置就做好了。假如我们现在的bundleid=com.owner.weekly,则在模拟器上的运行效果如下:

iconWeekly.jpg

如果bundleid=com.owner.daily,则运行如下:


iconDaily.jpg

这样一来,我们就可以在设置不同bundleid的时候,自动切换显示相应的AppIcon,不需要再人为去设置AppIcon。如果你也遇到了相同的需求,不妨试一试。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文是对 关于设置 iOS 应用 AppIcon 的探索里面提出问题的另一种探索方案。 原文是通过巧妙的使用了$(...
    酷酷的哀殿阅读 266评论 1 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,593评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • 1. 你是谁 ?(你学前状态) 我是应杰。 我学习冰宝前,我的发音靠模仿,即知其然不知其所以然。对...
    yingjie1960阅读 379评论 2 2
  • 忽然感觉有些患得患失起来,感觉怪怪的,有点心慌,病啦?! 嗯,确定了是有些烦,从什么时候开始的呢?从老妈家回来的路...
    素颜hb阅读 251评论 0 0