From 1908bbcf1c405e616e5249a91de33ebc3bd3766a Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Thu, 2 Jul 2026 16:45:08 -0700 Subject: [PATCH 01/10] Create TestFlight Versions Nucleic-Session: 1E7DF522-F57E-4717-8A39-4AA9781F3DBB Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj | 1 + 1 file changed, 1 insertion(+) diff --git a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj index 9ff9db5..49f16fd 100644 --- a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj +++ b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj @@ -10,6 +10,7 @@ BF00000000000000000001 /* NucleicProtocol in Frameworks */ = {isa = PBXBuildFile; productRef = PD00000000000000000001 /* NucleicProtocol */; }; BF00000000000000000002 /* NucleicRemoteWidgets.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = FR00000000000000000002 /* NucleicRemoteWidgets.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; E7D43FF12FF0806800BF2407 /* app-logo-file.icon in Resources */ = {isa = PBXBuildFile; fileRef = E7D43FF02FF0806800BF2407 /* app-logo-file.icon */; }; + E7D43FF12FF0806800BF2408 /* app-logo-canary.icon in Resources */ = {isa = PBXBuildFile; fileRef = E7D43FF02FF0806800BF2408 /* app-logo-canary.icon */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ From d890029e28ada8f0e23d4e21458b16486c536174 Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Thu, 2 Jul 2026 16:45:15 -0700 Subject: [PATCH 02/10] Create TestFlight Versions Nucleic-Session: 1E7DF522-F57E-4717-8A39-4AA9781F3DBB Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj | 1 + 1 file changed, 1 insertion(+) diff --git a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj index 49f16fd..b860838 100644 --- a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj +++ b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj @@ -39,6 +39,7 @@ /* Begin PBXFileReference section */ E7D43FF02FF0806800BF2407 /* app-logo-file.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = "app-logo-file.icon"; sourceTree = ""; }; + E7D43FF02FF0806800BF2408 /* app-logo-canary.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; name = "app-logo-canary.icon"; path = "../../app-logo-canary.icon"; sourceTree = ""; }; FR00000000000000000001 /* NucleicRemote.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NucleicRemote.app; sourceTree = BUILT_PRODUCTS_DIR; }; FR00000000000000000002 /* NucleicRemoteWidgets.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NucleicRemoteWidgets.appex; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ From 7e29b18a2e60700d5e6c5c908c271807879190dc Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Thu, 2 Jul 2026 16:45:18 -0700 Subject: [PATCH 03/10] Create TestFlight Versions Nucleic-Session: 1E7DF522-F57E-4717-8A39-4AA9781F3DBB Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj | 1 + 1 file changed, 1 insertion(+) diff --git a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj index b860838..3e28a16 100644 --- a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj +++ b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj @@ -112,6 +112,7 @@ SG00000000000000000003 /* Shared */, GR00000000000000000002 /* Products */, E7D43FF02FF0806800BF2407 /* app-logo-file.icon */, + E7D43FF02FF0806800BF2408 /* app-logo-canary.icon */, ); sourceTree = ""; }; From 65416449e5ee3aaa412b27ae2cd82a1794fc1f60 Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Thu, 2 Jul 2026 16:45:20 -0700 Subject: [PATCH 04/10] Create TestFlight Versions Nucleic-Session: 1E7DF522-F57E-4717-8A39-4AA9781F3DBB Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj | 1 + 1 file changed, 1 insertion(+) diff --git a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj index 3e28a16..1d6b83d 100644 --- a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj +++ b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj @@ -230,6 +230,7 @@ buildActionMask = 2147483647; files = ( E7D43FF12FF0806800BF2407 /* app-logo-file.icon in Resources */, + E7D43FF12FF0806800BF2408 /* app-logo-canary.icon in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; From 2d85bc185c4a484ddad6f950208a1ac8b7f093c3 Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Thu, 2 Jul 2026 16:45:25 -0700 Subject: [PATCH 05/10] Create TestFlight Versions Nucleic-Session: 1E7DF522-F57E-4717-8A39-4AA9781F3DBB Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj index 1d6b83d..44c05a9 100644 --- a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj +++ b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj @@ -297,7 +297,8 @@ BC00000000000000000003 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "app-logo-file"; + ASSETCATALOG_COMPILER_APPICON_NAME = "$(NUCLEIC_APPICON)"; + NUCLEIC_APPICON = "app-logo-file"; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = NucleicRemote/NucleicRemote.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; @@ -334,7 +335,8 @@ BC00000000000000000004 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "app-logo-file"; + ASSETCATALOG_COMPILER_APPICON_NAME = "$(NUCLEIC_APPICON)"; + NUCLEIC_APPICON = "app-logo-file"; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = NucleicRemote/NucleicRemote.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; From d52e0d1404e7366fbba887c8478c655cf3fa03da Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Thu, 2 Jul 2026 16:45:29 -0700 Subject: [PATCH 06/10] Create TestFlight Versions Nucleic-Session: 1E7DF522-F57E-4717-8A39-4AA9781F3DBB Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj index 44c05a9..ee748fb 100644 --- a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj +++ b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj @@ -313,6 +313,8 @@ INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_CFBundleDisplayName = "Nucleic$(NUCLEIC_NAME_SUFFIX)"; + NUCLEIC_NAME_SUFFIX = ""; IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -351,6 +353,8 @@ INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_CFBundleDisplayName = "Nucleic$(NUCLEIC_NAME_SUFFIX)"; + NUCLEIC_NAME_SUFFIX = ""; IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", From 57d9d79720be86e456552a3c6a7416392986baea Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Thu, 2 Jul 2026 16:45:31 -0700 Subject: [PATCH 07/10] Create TestFlight Versions Nucleic-Session: 1E7DF522-F57E-4717-8A39-4AA9781F3DBB Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj index ee748fb..9255d05 100644 --- a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj +++ b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj @@ -321,7 +321,8 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 0.1.0; - PRODUCT_BUNDLE_IDENTIFIER = "xyz.blakeslee.nucleic-remote"; + PRODUCT_BUNDLE_IDENTIFIER = "xyz.blakeslee.nucleic-remote$(NUCLEIC_BUNDLE_SUFFIX)"; + NUCLEIC_BUNDLE_SUFFIX = ""; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -361,7 +362,8 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 0.1.0; - PRODUCT_BUNDLE_IDENTIFIER = "xyz.blakeslee.nucleic-remote"; + PRODUCT_BUNDLE_IDENTIFIER = "xyz.blakeslee.nucleic-remote$(NUCLEIC_BUNDLE_SUFFIX)"; + NUCLEIC_BUNDLE_SUFFIX = ""; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; From 9fd6cba6ab2c9d04fe4dedcc9311e46cf06dc170 Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Thu, 2 Jul 2026 16:45:34 -0700 Subject: [PATCH 08/10] Create TestFlight Versions Nucleic-Session: 1E7DF522-F57E-4717-8A39-4AA9781F3DBB Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj index 9255d05..e5e4900 100644 --- a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj +++ b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj @@ -395,7 +395,8 @@ "@executable_path/../../Frameworks", ); MARKETING_VERSION = 0.1.0; - PRODUCT_BUNDLE_IDENTIFIER = "xyz.blakeslee.nucleic-remote.widgets"; + PRODUCT_BUNDLE_IDENTIFIER = "xyz.blakeslee.nucleic-remote$(NUCLEIC_BUNDLE_SUFFIX).widgets"; + NUCLEIC_BUNDLE_SUFFIX = ""; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -425,7 +426,8 @@ "@executable_path/../../Frameworks", ); MARKETING_VERSION = 0.1.0; - PRODUCT_BUNDLE_IDENTIFIER = "xyz.blakeslee.nucleic-remote.widgets"; + PRODUCT_BUNDLE_IDENTIFIER = "xyz.blakeslee.nucleic-remote$(NUCLEIC_BUNDLE_SUFFIX).widgets"; + NUCLEIC_BUNDLE_SUFFIX = ""; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; From bc585d6b0f331d3be7f07da8e556c5de73f21954 Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Thu, 2 Jul 2026 16:46:53 -0700 Subject: [PATCH 09/10] Create TestFlight Versions Nucleic-Session: 1E7DF522-F57E-4717-8A39-4AA9781F3DBB Co-authored-by: Nucleic --- VERSION | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/VERSION b/VERSION index ef0d599..1c7f36f 100644 --- a/VERSION +++ b/VERSION @@ -1,10 +1,11 @@ # Nucleic release version state — the single source of truth for this app's version. # Bumped by scripts/bump-version.sh on every release (Mac: ./VERSION; iOS: ios/VERSION). # Shell-sourceable (KEY=value). Don't hand-edit during a release — bump with e.g.: -# make ios-release # build-only (the iOS default): 0.1.0 -> 0.1.0, build +1 -# make ios-release BUMP=minor # 0.1.0 -> 0.2.0, build +1 -# make ios-release BUMP=major # 0.1.0 -> 1.0.0, build +1 -# make ios-release BUMP=patch # 0.1.0 -> 0.1.1, build +1 +# make ios-release-beta # public beta, minor (the beta default): 0.1.0 -> 0.2.0, build +1 +# make ios-release-canary # canary, build-only (the canary default): 0.1.0 -> 0.1.0, build +1 +# make ios-release-beta BUMP=major # 0.1.0 -> 1.0.0, build +1 +# make ios-release-beta BUMP=patch # 0.1.0 -> 0.1.1, build +1 +# make ios-release-beta BUMP=build # 0.1.0 -> 0.1.0 (build number only), build +1 # # NUCLEIC_MARKETING_VERSION semantic version -> CFBundleShortVersionString # NUCLEIC_BUILD_NUMBER monotonic build -> CFBundleVersion (always +1 per release) From 7e2c32d702b6f32d5fd4010840888fb502ffeb80 Mon Sep 17 00:00:00 2001 From: Andrew Blakeslee Moore Date: Thu, 2 Jul 2026 18:24:17 -0700 Subject: [PATCH 10/10] Create TestFlight Versions Nucleic-Session: 1E7DF522-F57E-4717-8A39-4AA9781F3DBB Co-authored-by: Nucleic --- NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj index e5e4900..e8f1eb9 100644 --- a/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj +++ b/NucleicRemote/NucleicRemote.xcodeproj/project.pbxproj @@ -312,7 +312,8 @@ INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Connect to your Mac running Nucleic on the local network."; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_CFBundleDisplayName = "Nucleic$(NUCLEIC_NAME_SUFFIX)"; NUCLEIC_NAME_SUFFIX = ""; IPHONEOS_DEPLOYMENT_TARGET = 17.0; @@ -353,7 +354,8 @@ INFOPLIST_KEY_NSLocalNetworkUsageDescription = "Connect to your Mac running Nucleic on the local network."; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; - INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_CFBundleDisplayName = "Nucleic$(NUCLEIC_NAME_SUFFIX)"; NUCLEIC_NAME_SUFFIX = ""; IPHONEOS_DEPLOYMENT_TARGET = 17.0;