Fix tvOS App Store upload rejection for icon assets

Use a tvOS-specific Info.plist to exclude iOS CFBundleAlternateIcons
keys that caused ITMS-90471 rejections, and drop empty image slots
from the tvOS brand asset catalog.
This commit is contained in:
Arkadiusz Fal
2026-04-17 19:01:36 +02:00
parent 6acfff6451
commit 0fe7194d68
6 changed files with 53 additions and 18 deletions

View File

@@ -569,6 +569,8 @@
"$(BUILT_PRODUCTS_DIR)/Libsmbclient.framework/Headers/samba-4.0", "$(BUILT_PRODUCTS_DIR)/Libsmbclient.framework/Headers/samba-4.0",
); );
INFOPLIST_FILE = Yattee/Info.plist; INFOPLIST_FILE = Yattee/Info.plist;
"INFOPLIST_FILE[sdk=appletvos*]" = "Yattee/Info-tvOS.plist";
"INFOPLIST_FILE[sdk=appletvsimulator*]" = "Yattee/Info-tvOS.plist";
INFOPLIST_KEY_CFBundleDisplayName = Yattee; INFOPLIST_KEY_CFBundleDisplayName = Yattee;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video";
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Yattee uses local network to discover and control playback on other Yattee devices."; INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Yattee uses local network to discover and control playback on other Yattee devices.";
@@ -648,6 +650,8 @@
"$(BUILT_PRODUCTS_DIR)/Libsmbclient.framework/Headers/samba-4.0", "$(BUILT_PRODUCTS_DIR)/Libsmbclient.framework/Headers/samba-4.0",
); );
INFOPLIST_FILE = Yattee/Info.plist; INFOPLIST_FILE = Yattee/Info.plist;
"INFOPLIST_FILE[sdk=appletvos*]" = "Yattee/Info-tvOS.plist";
"INFOPLIST_FILE[sdk=appletvsimulator*]" = "Yattee/Info-tvOS.plist";
INFOPLIST_KEY_CFBundleDisplayName = Yattee; INFOPLIST_KEY_CFBundleDisplayName = Yattee;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video"; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video";
INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Yattee uses local network to discover and control playback on other Yattee devices."; INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Yattee uses local network to discover and control playback on other Yattee devices.";

View File

@@ -1,9 +1,5 @@
{ {
"images" : [ "images" : [],
{
"idiom" : "tv"
}
],
"info" : { "info" : {
"author" : "xcode", "author" : "xcode",
"version" : 1 "version" : 1

View File

@@ -1,9 +1,5 @@
{ {
"images" : [ "images" : [],
{
"idiom" : "tv"
}
],
"info" : { "info" : {
"author" : "xcode", "author" : "xcode",
"version" : 1 "version" : 1

View File

@@ -4,10 +4,6 @@
"filename" : "TopShelf-Wide.png", "filename" : "TopShelf-Wide.png",
"idiom" : "tv", "idiom" : "tv",
"scale" : "1x" "scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
} }
], ],
"info" : { "info" : {

View File

@@ -4,10 +4,6 @@
"filename" : "TopShelf.png", "filename" : "TopShelf.png",
"idiom" : "tv", "idiom" : "tv",
"scale" : "1x" "scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
} }
], ],
"info" : { "info" : {

47
Yattee/Info-tvOS.plist Normal file
View File

@@ -0,0 +1,47 @@
<?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>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>stream.yattee.app.feedRefresh</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>stream.yattee.app</string>
<key>CFBundleURLSchemes</key>
<array>
<string>yattee</string>
</array>
</dict>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>NSBonjourServices</key>
<array>
<string>_yattee._tcp</string>
<string>_webdav._tcp</string>
<string>_webdavs._tcp</string>
<string>_smb._tcp</string>
</array>
<key>NSUserActivityTypes</key>
<array>
<string>stream.yattee.app.activity</string>
</array>
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
<string>remote-notification</string>
<string>fetch</string>
</array>
</dict>
</plist>