Switching alternative app icons previously worked in my app and I did not notice when it broke.
However now the completion handler consistently returns this error if feeding with either an existing app icon name or a fictional one.
Is this a regression I should file a bug report for or am I doing something wrong here?
Include all app icon assets is enabled in the target
Below you can see the error, the .icon files placed in the project navigator, my code and the top of the Info.plist
Thank you
Button("Update icon") { UIApplication.shared.setAlternateIconName("appIcon_Heart") { error in
if let error {
print(error)
}
}
}
Error Domain=NSPOSIXErrorDomain Code=35 "Resource temporarily unavailable" UserInfo={_LSFile=LSIconAlertManager.m, _LSLine=113, _LSFunction=-[LSIconAlertManager iconChangeAlertTokenForIdentity:error:]}
Xcode seems to create the correct Info.plist entries.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>newReleasesBackgroundTask</string>
</array>
<key>BuildMachineOSBuild</key>
<string>24G90</string>
<key>CFBundleDevelopmentRegion</key>
<string>de</string>
<key>CFBundleDisplayName</key>
<string>Hörspielzentrale</string>
<key>CFBundleExecutable</key>
<string>Hoerspielzentrale</string>
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>appIcon_Heart</key>
<dict>
<key>CFBundleIconName</key>
<string>appIcon_Heart</string>
</dict>
<key>appIcon_RedNoCircle</key>
<dict>
<key>CFBundleIconName</key>
<string>appIcon_RedNoCircle</string>
</dict>
<key>appIcon_WhiteNoCircle</key>
<dict>
<key>CFBundleIconName</key>
<string>appIcon_WhiteNoCircle</string>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon60x60</string>
</array>
<key>CFBundleIconName</key>
<string>AppIcon</string>
</dict>
</dict>
<key>CFBundleIcons~ipad</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>appIcon_Heart</key>
<dict>
<key>CFBundleIconName</key>
<string>appIcon_Heart</string>
</dict>
<key>appIcon_RedNoCircle</key>
<dict>
<key>CFBundleIconName</key>
<string>appIcon_RedNoCircle</string>
</dict>
<key>appIcon_WhiteNoCircle</key>
<dict>
<key>CFBundleIconName</key>
<string>appIcon_WhiteNoCircle</string>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>AppIcon60x60</string>
<string>AppIcon76x76</string>
</array>
<key>CFBundleIconName</key>
<string>AppIcon</string>
</dict>
</dict>
Hello @FPST and @himboswaggins,
I partnered with the author and took a look at the sample code, which was updated recently, I am able to follow the steps to a tee using my own custom app icons, and everything works as expected.
Confirm that you added the alternate app icon names to exactly match the alternate app icon file names in Build Settings > Select All > Search Alternate App Icon Sets
Feel free to contact us with an attached focused test project here. Please remove any elements not required for the app to run and demonstrate the issue, and I'd be more than happy to take a deeper look, as it seems to be effecting multiple developers
Thank you,
Travis Trotto - DTS Engineer