Hi 黑子 刘,
Thank you for the sample project. Your alternate icons aren’t working because of several issues in the Info.plist file:
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>changeicon</key>
<dict>
<key>Icon files</key>
<array>
<string>changeicon</string>
</array>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string></string>
</array>
<key>CFBundleIconName</key>
<string></string>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>UINewsstandIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string></string>
</array>
<key>UINewsstandBindingEdge</key>
<string>UINewsstandBindingEdgeLeft</string>
<key>UINewsstandBindingType</key>
<string>UINewsstandBindingTypeMagazine</string>
</dict>
</dict>
For CFBundlePrimaryIcon, you aren’t declaring an icon name. Since your main app icon is defined by the asset catalog, you should remove CFBundlePrimaryIcon from the Info.plist file.
Under CFBundleAlternateIcons, you have the key name Icon files. This should be CFBundleIconFiles.
UINewsstandIcon is no longer used. Newsstand was an iOS feature that was removed in iOS 9. You should also remove this from the Info.plist file.
<https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/app-icon/>