这是不是可以将替代图标应用于 iOS 应用程序?

Posted

技术标签:

【中文标题】这是不是可以将替代图标应用于 iOS 应用程序?【英文标题】:Is this possible to apply the alternative icon to the iOS application?这是否可以将替代图标应用于 iOS 应用程序? 【发布时间】:2017-06-16 12:01:17 【问题描述】:

我需要根据地区更改应用图标,可以吗?

【问题讨论】:

【参考方案1】:

是的,从 iOS 10.3 开始可以做到这一点。

首先,您需要在 Info.plist 文件中定义所有替代图标,您无法动态获取它们。

在下面的示例中,我们定义了 2 个替代图标:“de”和“fr”:

<key>CFBundleIcons</key>
 <dict>
  <key>CFBundleAlternateIcons</key>
  <dict>
   <key>de</key>
   <dict>
    <key>CFBundleIconFiles</key>
    <array>
     <string>ic_de</string>
    </array>
    <key>UIPrerenderedIcon</key>
    <false/>
   </dict>
   <key>fr</key>
   <dict>
    <key>CFBundleIconFiles</key>
    <array>
     <string>ic_fr</string>
    </array>
    <key>UIPrerenderedIcon</key>
    <false/>
   </dict>
  </dict>
  <key>CFBundlePrimaryIcon</key>
  <dict>
   <key>CFBundleIconFiles</key>
   <array>
    <string>ic_none</string>
   </array>
  </dict>
 </dict>

然后您可以根据您喜欢的任何内容(游戏进度、天气状况、高级用户等)设置图标名称。要更改图标使用:

UIApplication.shared.setAlternateIconName("de")  (error) in
    if let error = error 
        print("err: \(error)")
        // icon probably wasn't defined in plist file, handle the error
    

结果:

gif 来自a Medium article by Julien Quéré。

【讨论】:

主键:在 .xcassets 文件夹之外添加您的备用应用程序图标图像。 您可以更改的图像数量是否有限制? @KlimczakM @Pavan,完全没有限制。唯一的限制是你的包里有什么。【参考方案2】:

10.3(测试版)

中提供此功能

讨论 使用此方法将应用程序的图标更改为其主图标或其中一个备用图标。只有在 supportsAlternateIcons 属性的值为 true 时才能更改图标。

您必须使用应用的 Info.plist 文件的 CFBundleIcons 键声明应用的主图标和备用图标。有关如何为您的应用配置备用图标的信息,请参阅信息属性列表键参考中对 CFBundleIcons 键的说明。

看看:

apple documentation

【讨论】:

以上是关于这是不是可以将替代图标应用于 iOS 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

图标 IOS 周围的黑线

iphone ios 7 主屏幕掩码未正确应用于我的图标

删除应用程序不应删除文档目录

删除 iOS 7 上的安装图标

在决定要开发的 iOS 版本时应考虑哪些因素?

我可以在 ios 应用程序图标上显示星号或圆点而不是徽章计数吗? [关闭]