Xcode/iOS - CFBundleAlternateIcons 没有改变
Xcode/iOS - CFBundleAlternateIcons not changing
我一直在尝试使用 CFBundleAlternateIcons 更改我的应用程序图标,但没有任何反应。我实际上正在使用 Flutter SDK 的插件 - flutter_dynamic_icon
,当我使用该插件更改图标时,它显示 'App icon change successful' 好像没有任何问题。
在进行一些故障排除后,我还尝试重新保存预览中的图标以确保它们是 PNG 文件,并删除了它们的 Alpha 通道,结果没有任何变化。
我做错了什么?是 Info.plist 问题吗?我的图标保存不正确吗?我要求图标更改不正确吗?
这是我尝试在 dart lang 中更改图标的方式:
try {
if (await FlutterDynamicIcon.supportsAlternateIcons) {
await FlutterDynamicIcon.setAlternateIconName("dark");
print("App icon change successful");
return;
}
} on PlatformException {} catch (e) {
print("icon couldn't be changed");
}
这是我看到的,不管我点击更改为dark
图标还是light
图标。
这是我的 Info.plist / 文件结构:
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>light</key>
<dict>
<key>UIPrerenderedIcon</key>
<string>NO</string>
<key>CFBundleIconFiles</key>
<array>
<string>light</string>
</array>
</dict>
<key>dark</key>
<dict>
<key>UIPrerenderedIcon</key>
<string>NO</string>
<key>CFBundleIconFiles</key>
<array>
<string>dark</string>
</array>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>dark</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
编辑:我现在已经解决了我的问题,尽管在线指南建议您将备用图标放在一个单独的文件夹中,但我的情况只有在我将所述图标直接放在 Runner
目录中时才有效。
我通过在 Info.plist
中定义 CFBundleIconFiles
来解决这个问题,如下所示。这是一个微妙的变化,但可以成就或破坏这个过程。
之前:
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>light</key>
<dict>
<key>UIPrerenderedIcon</key>
<string>NO</string>
<key>CFBundleIconFiles</key>
<array>
<string>light</string>
</array>
</dict>
<key>dark</key>
<dict>
<key>UIPrerenderedIcon</key>
<string>NO</string>
<key>CFBundleIconFiles</key>
<array>
<string>dark</string>
</array>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>dark</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
之后:
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>light</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>light</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>light</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>dark</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>dark</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
</dict>
属性 列表:
Xcode项目目录:
我一直在尝试使用 CFBundleAlternateIcons 更改我的应用程序图标,但没有任何反应。我实际上正在使用 Flutter SDK 的插件 - flutter_dynamic_icon
,当我使用该插件更改图标时,它显示 'App icon change successful' 好像没有任何问题。
在进行一些故障排除后,我还尝试重新保存预览中的图标以确保它们是 PNG 文件,并删除了它们的 Alpha 通道,结果没有任何变化。
我做错了什么?是 Info.plist 问题吗?我的图标保存不正确吗?我要求图标更改不正确吗?
这是我尝试在 dart lang 中更改图标的方式:
try {
if (await FlutterDynamicIcon.supportsAlternateIcons) {
await FlutterDynamicIcon.setAlternateIconName("dark");
print("App icon change successful");
return;
}
} on PlatformException {} catch (e) {
print("icon couldn't be changed");
}
这是我看到的,不管我点击更改为dark
图标还是light
图标。
这是我的 Info.plist / 文件结构:
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>light</key>
<dict>
<key>UIPrerenderedIcon</key>
<string>NO</string>
<key>CFBundleIconFiles</key>
<array>
<string>light</string>
</array>
</dict>
<key>dark</key>
<dict>
<key>UIPrerenderedIcon</key>
<string>NO</string>
<key>CFBundleIconFiles</key>
<array>
<string>dark</string>
</array>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>dark</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
编辑:我现在已经解决了我的问题,尽管在线指南建议您将备用图标放在一个单独的文件夹中,但我的情况只有在我将所述图标直接放在 Runner
目录中时才有效。
我通过在 Info.plist
中定义 CFBundleIconFiles
来解决这个问题,如下所示。这是一个微妙的变化,但可以成就或破坏这个过程。
之前:
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>light</key>
<dict>
<key>UIPrerenderedIcon</key>
<string>NO</string>
<key>CFBundleIconFiles</key>
<array>
<string>light</string>
</array>
</dict>
<key>dark</key>
<dict>
<key>UIPrerenderedIcon</key>
<string>NO</string>
<key>CFBundleIconFiles</key>
<array>
<string>dark</string>
</array>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>dark</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
之后:
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>light</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>light</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>light</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>dark</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>dark</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
</dict>
属性 列表:
Xcode项目目录: