You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅Xcode 16 Beta 5可用时,WhatsApp等应用如何发布深色模式图标版本?

实现iOS深色模式应用图标的非Beta方案

你看到的WhatsApp等应用的深色模式图标,并没有使用iOS 18/Xcode 16 Beta的新特性——它们用的是iOS 13起就支持的官方兼容方案,完全可以用正式版Xcode(比如Xcode 15)打包上架,具体实现有两种方式:

方式一:通过Info.plist配置自动切换(推荐)

这是系统原生支持的自动切换方案,无需额外代码,步骤如下:

  1. 在Asset Catalog中创建两个App Icon Set:
    • 常规模式图标:保持默认命名(比如AppIcon)
    • 深色模式图标:命名为AppIcon-Dark(或其他自定义名称)
  2. 在Info.plist中添加如下配置,让系统根据外观模式自动加载对应图标:
    <key>CFBundleIcons</key>
    <dict>
        <key>CFBundlePrimaryIcon</key>
        <dict>
            <key>CFBundleIconFiles</key>
            <array>
                <string>AppIcon</string>
            </array>
        </dict>
        <!-- 深色模式下的图标配置 -->
        <key>CFBundleIcons~dark</key>
        <dict>
            <key>CFBundlePrimaryIcon</key>
            <dict>
                <key>CFBundleIconFiles</key>
                <array>
                    <string>AppIcon-Dark</string>
                </array>
            </dict>
        </dict>
    </dict>
    
    配置完成后,系统会在用户切换深色/浅色模式时自动替换应用图标,全程无需代码干预。

方式二:通过代码手动切换

如果需要更灵活的控制(比如根据特定条件切换图标),可以监听系统外观变化,调用官方API切换:

  1. 先在Asset Catalog中创建备用图标集,并在Info.plist的CFBundleAlternateIcons中注册(参考方式一中的CFBundleAlternateIcons配置逻辑)
  2. 监听系统外观变化,在回调中触发图标切换:
    override func viewDidLoad() {
        super.viewDidLoad()
        // 监听外观变化通知
        NotificationCenter.default.addObserver(self, selector: #selector(handleAppearanceChange), name: UIColor.systemAppearanceDidChangeNotification, object: nil)
    }
    
    @objc private func handleAppearanceChange() {
        let isDarkMode = UITraitCollection.current.userInterfaceStyle == .dark
        // 根据模式切换图标
        UIApplication.shared.setAlternateIconName(isDarkMode ? "DarkModeIcon" : nil) { error in
            if let error = error {
                print("图标切换失败:\(error.localizedDescription)")
            }
        }
    }
    

iOS 18的新特性只是简化了Asset Catalog的配置流程(直接在同一个App Icon Set中添加深色变体),但上述两种方案都是iOS 13+的正式特性,完全符合App Store上架要求,不需要依赖Xcode 16 Beta版本。

内容的提问来源于stack exchange,提问作者Adarsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 22:43:22