1. 概述
最近接手的一个项目中,涉及到了切换APP图标的功能,查阅文档后发现是iOS10.3之后才有的功能,本篇文章就记录一下如果切换APP图标的功能,以备日后使用。
2. 切换APP图标的API
extension UIApplication {
// 判断是否支持切换APP图标的功能。
@available(iOS 10.3, *)
open var supportsAlternateIcons: Bool { get }
// 设置APP图标,如果alternateIconName传nil,那么默认切换到主APP图标,completionHandler回调在子线程中执行,如果里面要执行UI相关的操作,还需切换到主线程。
@available(iOS 10.3, *)
open func setAlternateIconName(_ alternateIconName: String?, completionHandler: ((Error?) -> Void)? = nil)
// 当前APP使用的图标,如果返回nil,则说明使用的是主图标。
@available(iOS 10.3, *)
open var alternateIconName: String? { get }
}
单纯从API上看,其实还是很容易的,只需要一个setAlternateIconName的方法。但是个人感觉配置起来还是有些小麻烦的。
3. 准备APP图标
这一步完全不需要开发人员去做,有美工小姐姐呢,但是笔者还是认为有必要记录一下。
准备好的其他图案的APP图标,全部放到一个文件夹内,名字随便起,这里面,可以准备一套APP图标,也可以准备几个有针对性的。
这个文件夹需要放到项目目录下面,项目的主图标放在了Assets.xcassets下面的AppIcon.appiconset里面(一般也没人会改这个主图标的位置)。
下面看一下我的配置:


在这里我准备Icon2和Icon3两套APP图标,有点奢侈了。
4. 配置Info.plist
这一步绝对是必不可少的。
苹果的文档要求我们在Info.plist里面配置一个叫CFBundleIcons的key。
CFBundleIcons(Dictionary- iOS, tvOS) contains information about all of the icons used by the app. This key allows you to group icons based on their intended usage and specify multiple icon files together with specific keys for modifying the appearance of those icons.This dictionary can contain the following keys:
4.1 CFBundleIcons
CFBundleIcons是一个字典,包含了App所有的图标信息,我们可以在这里根据不同的key在设置再设置不同的APP图标。并且这个字典里面还包含了一些


2495

被折叠的 条评论
为什么被折叠?



