无法在 iOS 11 中设置备用应用程序图标
Unable to set alternate app icons in iOS 11
我无法将应用程序的图标更改为 iOS 11(Xcode 9,测试版 3)中的备用图标。
但是,它在 iOS 10.3 中工作正常(使用以下代码):
if #available(iOS 10.3, *) {
guard let iconName = MySingletonClass.sharedInstance.iconName() else { return }
delay(0.01) {
UIApplication.shared.setAlternateIconName(iconName, completionHandler: { (error) in
if let error = error {
print(error.localizedDescription)
} else {
print("Success!")
}
})
}
} else {
// Fallback on earlier versions
}
我的 plist 是这样设置的:
我觉得很奇怪,因为我在 iOS 11 中使用过其他使用备用应用程序图标的应用程序。iOS 11 中是否存在已知错误?
注意:如果您想知道我为什么要使用延迟,
我通过在 ViewController 中实现它来解决这个问题,而不是在 AppDelegate 的 appDidFinishLaunchingWithOptions
中实现
如相关问题/答案所指出的,仍然需要 运行 它在延迟内才能正常工作。
如果这没有帮助,请禁用应用程序图标资源。它帮助到我。
我猜资产和 plist 图标之间存在一些冲突。
我无法将应用程序的图标更改为 iOS 11(Xcode 9,测试版 3)中的备用图标。
但是,它在 iOS 10.3 中工作正常(使用以下代码):
if #available(iOS 10.3, *) {
guard let iconName = MySingletonClass.sharedInstance.iconName() else { return }
delay(0.01) {
UIApplication.shared.setAlternateIconName(iconName, completionHandler: { (error) in
if let error = error {
print(error.localizedDescription)
} else {
print("Success!")
}
})
}
} else {
// Fallback on earlier versions
}
我的 plist 是这样设置的:
我觉得很奇怪,因为我在 iOS 11 中使用过其他使用备用应用程序图标的应用程序。iOS 11 中是否存在已知错误?
注意:如果您想知道我为什么要使用延迟,
我通过在 ViewController 中实现它来解决这个问题,而不是在 AppDelegate 的 appDidFinishLaunchingWithOptions
中实现如相关问题/答案所指出的,仍然需要 运行 它在延迟内才能正常工作。
如果这没有帮助,请禁用应用程序图标资源。它帮助到我。 我猜资产和 plist 图标之间存在一些冲突。