From 84f5c0051695cc6a40383276891f385d4345579a Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Mon, 10 Aug 2026 17:19:55 +0200 Subject: [PATCH] Keep iOS iPhone-only; give the iPad family to Mac Catalyst alone MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enabling Mac Catalyst pulled in the iPad device family, which made App Store Connect reject the iOS build with error 90474: an iPad-capable bundle must declare all four interface orientations to support iPad multitasking, and this app declared two. Catalyst genuinely needs the iPad idiom, but only for its own build. A per-SDK condition gives macOS family 2 while iOS keeps family 1 — verified to resolve correctly for both destinations, and Catalyst still builds with family 2 alone. The shipped iOS bundle is back to UIDeviceFamily [1], exactly as before the port started. The iPad orientation key is removed rather than extended. With an iPhone-only iOS build it is ignored, and macOS ignores orientation keys entirely, so it was dead configuration that only served to trip the validator. Supporting iPad properly is a deliberate piece of work — the layout is portrait-only with no size-class handling — and is better done on purpose than inherited as a side effect of the Mac port. Verified: builds for both Mac Catalyst and iOS Simulator; built bundle reports UIDeviceFamily [1] and portrait-only with no iPad orientation key. Co-Authored-By: Claude Opus 5 --- Calendarr iOS.xcodeproj/project.pbxproj | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Calendarr iOS.xcodeproj/project.pbxproj b/Calendarr iOS.xcodeproj/project.pbxproj index a3e28b3..705cf89 100644 --- a/Calendarr iOS.xcodeproj/project.pbxproj +++ b/Calendarr iOS.xcodeproj/project.pbxproj @@ -507,7 +507,6 @@ INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UIStatusBarStyle = UIStatusBarStyleDarkContent; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait"; IPHONEOS_DEPLOYMENT_TARGET = 26.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -525,7 +524,8 @@ SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 1; + "TARGETED_DEVICE_FAMILY[sdk=macosx*]" = 2; }; name = Debug; }; @@ -552,7 +552,6 @@ INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UIStatusBarStyle = UIStatusBarStyleDarkContent; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait"; IPHONEOS_DEPLOYMENT_TARGET = 26.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -570,7 +569,8 @@ SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 1; + "TARGETED_DEVICE_FAMILY[sdk=macosx*]" = 2; }; name = Release; }; @@ -604,7 +604,8 @@ SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 1; + "TARGETED_DEVICE_FAMILY[sdk=macosx*]" = 2; }; name = Debug; }; @@ -637,7 +638,8 @@ SWIFT_COMPILATION_MODE = wholemodule; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 1; + "TARGETED_DEVICE_FAMILY[sdk=macosx*]" = 2; }; name = Release; };