From 0fe7194d680308f847e78851969c790eed2b5f9b Mon Sep 17 00:00:00 2001 From: Arkadiusz Fal Date: Fri, 17 Apr 2026 19:01:36 +0200 Subject: [PATCH] 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. --- Yattee.xcodeproj/project.pbxproj | 4 ++ .../Content.imageset/Contents.json | 6 +-- .../Content.imageset/Contents.json | 6 +-- .../Contents.json | 4 -- .../Top Shelf Image.imageset/Contents.json | 4 -- Yattee/Info-tvOS.plist | 47 +++++++++++++++++++ 6 files changed, 53 insertions(+), 18 deletions(-) create mode 100644 Yattee/Info-tvOS.plist diff --git a/Yattee.xcodeproj/project.pbxproj b/Yattee.xcodeproj/project.pbxproj index dbbbf99d..e11fc5eb 100644 --- a/Yattee.xcodeproj/project.pbxproj +++ b/Yattee.xcodeproj/project.pbxproj @@ -569,6 +569,8 @@ "$(BUILT_PRODUCTS_DIR)/Libsmbclient.framework/Headers/samba-4.0", ); 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_LSApplicationCategoryType = "public.app-category.video"; 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", ); 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_LSApplicationCategoryType = "public.app-category.video"; INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Yattee uses local network to discover and control playback on other Yattee devices."; diff --git a/Yattee/Assets.xcassets/Yattee2.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json b/Yattee/Assets.xcassets/Yattee2.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json index 2e003356..bd2bbdb3 100644 --- a/Yattee/Assets.xcassets/Yattee2.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +++ b/Yattee/Assets.xcassets/Yattee2.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json @@ -1,9 +1,5 @@ { - "images" : [ - { - "idiom" : "tv" - } - ], + "images" : [], "info" : { "author" : "xcode", "version" : 1 diff --git a/Yattee/Assets.xcassets/Yattee2.brandassets/App Icon.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json b/Yattee/Assets.xcassets/Yattee2.brandassets/App Icon.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json index 2e003356..bd2bbdb3 100644 --- a/Yattee/Assets.xcassets/Yattee2.brandassets/App Icon.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +++ b/Yattee/Assets.xcassets/Yattee2.brandassets/App Icon.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json @@ -1,9 +1,5 @@ { - "images" : [ - { - "idiom" : "tv" - } - ], + "images" : [], "info" : { "author" : "xcode", "version" : 1 diff --git a/Yattee/Assets.xcassets/Yattee2.brandassets/Top Shelf Image Wide.imageset/Contents.json b/Yattee/Assets.xcassets/Yattee2.brandassets/Top Shelf Image Wide.imageset/Contents.json index 7f69c734..eecc3910 100644 --- a/Yattee/Assets.xcassets/Yattee2.brandassets/Top Shelf Image Wide.imageset/Contents.json +++ b/Yattee/Assets.xcassets/Yattee2.brandassets/Top Shelf Image Wide.imageset/Contents.json @@ -4,10 +4,6 @@ "filename" : "TopShelf-Wide.png", "idiom" : "tv", "scale" : "1x" - }, - { - "idiom" : "tv", - "scale" : "2x" } ], "info" : { diff --git a/Yattee/Assets.xcassets/Yattee2.brandassets/Top Shelf Image.imageset/Contents.json b/Yattee/Assets.xcassets/Yattee2.brandassets/Top Shelf Image.imageset/Contents.json index 14d58664..1fe65665 100644 --- a/Yattee/Assets.xcassets/Yattee2.brandassets/Top Shelf Image.imageset/Contents.json +++ b/Yattee/Assets.xcassets/Yattee2.brandassets/Top Shelf Image.imageset/Contents.json @@ -4,10 +4,6 @@ "filename" : "TopShelf.png", "idiom" : "tv", "scale" : "1x" - }, - { - "idiom" : "tv", - "scale" : "2x" } ], "info" : { diff --git a/Yattee/Info-tvOS.plist b/Yattee/Info-tvOS.plist new file mode 100644 index 00000000..5e13c828 --- /dev/null +++ b/Yattee/Info-tvOS.plist @@ -0,0 +1,47 @@ + + + + + ITSAppUsesNonExemptEncryption + + BGTaskSchedulerPermittedIdentifiers + + stream.yattee.app.feedRefresh + + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLName + stream.yattee.app + CFBundleURLSchemes + + yattee + + + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + NSBonjourServices + + _yattee._tcp + _webdav._tcp + _webdavs._tcp + _smb._tcp + + NSUserActivityTypes + + stream.yattee.app.activity + + UIBackgroundModes + + audio + remote-notification + fetch + + +