美文网首页
修改 AppIcon

修改 AppIcon

作者: 煮石散人 | 来源:发表于2018-04-20 15:20 被阅读6次

    有一次看到亚马逊的客户端打开后,就提示 icon 改变了,回桌面一看,竟然真的变了。然后就上网搜索是怎么实现的,参照着写了一个小 demo ,权当笔记。

    效果截图

    首先,导入图片到项目的中,如下图。不要导入到 Assets.xcassets ,否则无法修改。

    xcode-proj-structure.png

    这之后,修改 Info.plist 如图:

    Info.plist

    对应部分的 XML 代码如下:

    <key>CFBundleIcons</key>
        <dict>
            <key>CFBundleAlternateIcons</key>
            <dict>
                <key>gray</key>
                <dict>
                    <key>CFBundleIconFiles</key>
                    <array>
                        <string>github-gray</string>
                    </array>
                    <key>UIPrerenderedIcon</key>
                    <true/>
                </dict>
                <key>green</key>
                <dict>
                    <key>CFBundleIconFiles</key>
                    <array>
                        <string>github-green</string>
                    </array>
                    <key>UIPrerenderedIcon</key>
                    <true/>
                </dict>
                <key>pink</key>
                <dict>
                    <key>CFBundleIconFiles</key>
                    <array>
                        <string>github-pink</string>
                    </array>
                    <key>UIPrerenderedIcon</key>
                    <true/>
                </dict>
            </dict>
            <key>CFBundlePrimaryIcon</key>
            <dict>
                <key>CFBundleIconFiles</key>
                <array>
                    <string></string>
                </array>
                <key>UIPrerenderedIcon</key>
                <false/>
            </dict>
        </dict>
    

    最后的工作就剩调用 setAlternateIconName(_:completionHandler:)

    func setAppIcon(to name: String?) {
            let app = UIApplication.shared
            guard app.supportsAlternateIcons else {
                return
            }
            app.setAlternateIconName(name) {
                if let error = $0 {
                    print("Failed: \(error.localizedDescription)")
                } else {
                    print("Aha, icon changed!")
                }
            }
        }
    

    是不是小菜一碟呀?

    附:

    相关文章

      网友评论

          本文标题:修改 AppIcon

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