Assistance Needed with Malformed Info.plist Affecting TestFlight Build Selection

Hello everyone,

I am experiencing an issue with the Info.plist file in my app, which prevents me from selecting a build on TestFlight. After several attempts to resolve the issue using Xcode documentation and forums, I contacted Apple Developer Support for assistance.

My Support Journey:

  1. Developer Support Team

    • They identified that the issue lies with the CFBundleAlternateIcons key in the Info.plist file.
    • However, they informed me that their scope is limited to administrative support for the Apple Developer Program and redirected me to the Developer Technical Support Team for code-level assistance.
  2. Developer Technical Support Team

    • After reviewing my case, they advised me to use an alternative approach to the CFBundleAlternateIcons key in the main app bundle (Payload/maxplayer_androidtv.app/Info.plist).
    • They recommended seeking further guidance on forums or through other technical resources.

Below is the current content of my Info.plist file:

<key>CFBundleIcons</key>
<dict>
    <key>CFBundlePrimaryIcon</key>
    <string>AppIcon</string>
    <key>CFBundleAlternateIcons</key>
    <string>AlternateIcon</string>
</dict>
<key>XSAppIconAssets</key>
<string>Images.xcassets/AppIcon.appiconset</string>
<key>TVTopShelfImage</key>
<dict>
    <key>TVTopShelfPrimaryImageWide</key>
    <string>TopShelfImageWide</string>
    <key>TVTopShelfPrimaryImage</key>
    <string>TopShelfImage</string>
</dict>

Could anyone provide guidance on how to properly structure this file to resolve the issue? If anyone has an example of a correct Info.plist file supporting alternate icons (CFBundleAlternateIcons), I would greatly appreciate it.

Thank you in advance for your help!

Answered by DTS Engineer in 823168022

Rather than specify any of the icon keys in your Info.plist file yourself, remove those keys from your Info.plist file and let Xcode do it for you. (The build setting named Generate Info.plist File also needs to be enabled.) For your main app icon, there's a place to specify the name of the app icon in your asset catalog. And for alternate app icons, you use the asset catalog to include the imagery, and then tell Xcode the name of those alternate icon sets by adding it to the Alternate App Icon Sets build setting. There's a sample code project that shows this configuration.

The XSAppIconAssets key caught my eye here as well, since it's not one of Apple's Info.plist keys. If you have third-party tooling that is involved with your build or icon management, or generating your Xcode project for you, you may also need to talk with the vendor, as their tooling also may not be doing the right thing for you here.

— Ed Ford,  DTS Engineer

Accepted Answer

Rather than specify any of the icon keys in your Info.plist file yourself, remove those keys from your Info.plist file and let Xcode do it for you. (The build setting named Generate Info.plist File also needs to be enabled.) For your main app icon, there's a place to specify the name of the app icon in your asset catalog. And for alternate app icons, you use the asset catalog to include the imagery, and then tell Xcode the name of those alternate icon sets by adding it to the Alternate App Icon Sets build setting. There's a sample code project that shows this configuration.

The XSAppIconAssets key caught my eye here as well, since it's not one of Apple's Info.plist keys. If you have third-party tooling that is involved with your build or icon management, or generating your Xcode project for you, you may also need to talk with the vendor, as their tooling also may not be doing the right thing for you here.

— Ed Ford,  DTS Engineer


Thank you for your answer.
I have enabled the Generate Info.plist File setting and tried rebuilding the app, but the file was not regenerated. I also copied the Icon Set from the sample project for alternate icons, but had no success, so I removed the entire alternate icon set myself since I don’t need it.

Additionally, I removed XSAppIconAssets. The strange thing is that before removing AlternateIcon from CFBundleIcons, the build was visible in the App Store Connect mobile app with the correct icon, but the issue persisted when accessing versions via the web interface. After removing AlternateIcon, the behavior changed.

It seems that AlternateIcon was affecting this issue for some unknown reason, even though I copied the set from your sample project. Here is my code snippet—maybe it will help someone avoid going through the same process. Could you confirm from your side whether this looks correct?

<key>CFBundleIcons</key>
<dict>
    <key>CFBundlePrimaryIcon</key>
    <string>AppIcon</string>
</dict>
<key>TVTopShelfImage</key>
<dict>
    <key>TVTopShelfPrimaryImageWide</key>
    <string>TopShelfImageWide</string>
    <key>TVTopShelfPrimaryImage</key>
    <string>TopShelfImage</string>
</dict>

Can you share an Xcode project that demonstrates the issues you are having, and confirm that the Xcode project file was not generated by a third-party tool? If so, please post a link to somewhere that I can get it from. This test project can be a drastically stripped down version of your project, I just need something that is buildable to look at this further.

— Ed Ford,  DTS Engineer

Assistance Needed with Malformed Info.plist Affecting TestFlight Build Selection
 
 
Q