commit 6e47399444fc9dae2bc2182e966157a7b0fb8b3d
parent 86b25df8a6d800c1abd2df80b268759739a38215
Author: Jean Schurger <jean@schurger.org>
Date: Sat, 17 Oct 2026 14:03:17 -0400
iOS: move to Jean's personal developer account (team CM5RQKJH56, org.schurger.sonodrill)
Fastlane reads the PERSO_ASC_* API key and creates the team's distribution
certificate when missing.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141Zm4UQq8PATQAG98MdNCc
Diffstat:
7 files changed, 30 insertions(+), 27 deletions(-)
diff --git a/composeApp/src/iosMain/kotlin/ubi2/sonodrill/main_ios.kt b/composeApp/src/iosMain/kotlin/ubi2/sonodrill/main_ios.kt
@@ -32,7 +32,7 @@ private var app_repo: AudioRepository? = null
// Opened before the app was ready
private val pending_urls = mutableListOf<NSURL>()
-private const val MARKS_TYPE = "ubi2.sonodrill.marks"
+private const val MARKS_TYPE = "org.schurger.sonodrill.marks"
fun register_waveform_provider(provider: WaveformProvider) {
waveform_provider = provider
diff --git a/iosApp/Configuration/Config.xcconfig b/iosApp/Configuration/Config.xcconfig
@@ -1,3 +1,3 @@
TEAM_ID =
-BUNDLE_ID = ubi2.sonodrill
+BUNDLE_ID = org.schurger.sonodrill
APP_NAME = Sonodrill
diff --git a/iosApp/ExportOptions.plist b/iosApp/ExportOptions.plist
@@ -7,7 +7,7 @@
<key>signingStyle</key>
<string>automatic</string>
<key>teamID</key>
- <string>8CH9CCT4MH</string>
+ <string>CM5RQKJH56</string>
<key>uploadSymbols</key>
<true/>
</dict>
diff --git a/iosApp/fastlane/Appfile b/iosApp/fastlane/Appfile
@@ -1,3 +1,3 @@
-app_identifier("ubi2.sonodrill")
-apple_id(ENV["UBI2_APPLE_ID"])
-team_id("8CH9CCT4MH")
+app_identifier("org.schurger.sonodrill")
+apple_id(ENV["PERSO_APPLE_ID"])
+team_id("CM5RQKJH56")
diff --git a/iosApp/fastlane/Fastfile b/iosApp/fastlane/Fastfile
@@ -8,14 +8,17 @@ platform :ios do
sh("cd .. && xcodegen generate")
api_key = app_store_connect_api_key(
- key_id: ENV["UBI2_ASC_KEY_ID"],
- issuer_id: ENV["UBI2_ASC_ISSUER_ID"],
- key_filepath: ENV["UBI2_ASC_KEY_PATH"],
+ key_id: ENV["PERSO_ASC_KEY_ID"],
+ issuer_id: ENV["PERSO_ASC_ISSUER_ID"],
+ key_filepath: ENV["PERSO_ASC_KEY_PATH"],
)
+ # Distribution certificate of the team, created and installed in the keychain if missing
+ get_certificates(api_key: api_key, output_path: Dir.tmpdir)
+
# App Store profile (downloaded or created): the export signs manually with it.
# SIGH_FORCE=1 makes a new one, after a capability changed on the App ID.
- sigh(app_identifier: "ubi2.sonodrill", api_key: api_key, output_path: Dir.tmpdir, force: ENV["SIGH_FORCE"] == "1")
+ sigh(app_identifier: "org.schurger.sonodrill", api_key: api_key, output_path: Dir.tmpdir, force: ENV["SIGH_FORCE"] == "1")
profile_name = lane_context[SharedValues::SIGH_NAME]
build_number = Time.now.strftime("%Y%m%d%H%M")
@@ -42,11 +45,11 @@ platform :ios do
<string>Apple Distribution</string>
<key>provisioningProfiles</key>
<dict>
- <key>ubi2.sonodrill</key>
+ <key>org.schurger.sonodrill</key>
<string>#{profile_name}</string>
</dict>
<key>teamID</key>
- <string>8CH9CCT4MH</string>
+ <string>CM5RQKJH56</string>
<key>uploadSymbols</key>
<true/>
</dict>
@@ -61,9 +64,9 @@ platform :ios do
"-destination", "generic/platform=iOS",
"-archivePath", archive_path,
"-allowProvisioningUpdates",
- "-authenticationKeyPath", ENV["UBI2_ASC_KEY_PATH"],
- "-authenticationKeyID", ENV["UBI2_ASC_KEY_ID"],
- "-authenticationKeyIssuerID", ENV["UBI2_ASC_ISSUER_ID"],
+ "-authenticationKeyPath", ENV["PERSO_ASC_KEY_PATH"],
+ "-authenticationKeyID", ENV["PERSO_ASC_KEY_ID"],
+ "-authenticationKeyIssuerID", ENV["PERSO_ASC_ISSUER_ID"],
"archive",
)
@@ -74,9 +77,9 @@ platform :ios do
"-exportOptionsPlist", export_plist,
"-exportPath", output_dir,
"-allowProvisioningUpdates",
- "-authenticationKeyPath", ENV["UBI2_ASC_KEY_PATH"],
- "-authenticationKeyID", ENV["UBI2_ASC_KEY_ID"],
- "-authenticationKeyIssuerID", ENV["UBI2_ASC_ISSUER_ID"],
+ "-authenticationKeyPath", ENV["PERSO_ASC_KEY_PATH"],
+ "-authenticationKeyID", ENV["PERSO_ASC_KEY_ID"],
+ "-authenticationKeyIssuerID", ENV["PERSO_ASC_ISSUER_ID"],
)
upload_to_testflight(
diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj
@@ -105,7 +105,7 @@
LastUpgradeCheck = 1430;
TargetAttributes = {
78B53CC79860CBFC2F5543C6 = {
- DevelopmentTeam = 8CH9CCT4MH;
+ DevelopmentTeam = CM5RQKJH56;
};
};
};
@@ -210,7 +210,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- DEVELOPMENT_TEAM = 8CH9CCT4MH;
+ DEVELOPMENT_TEAM = CM5RQKJH56;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -267,7 +267,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = 8CH9CCT4MH;
+ DEVELOPMENT_TEAM = CM5RQKJH56;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -317,7 +317,7 @@
"-framework",
MediaPlayer,
);
- PRODUCT_BUNDLE_IDENTIFIER = ubi2.sonodrill;
+ PRODUCT_BUNDLE_IDENTIFIER = org.schurger.sonodrill;
PRODUCT_NAME = Sonodrill;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -345,7 +345,7 @@
"-framework",
MediaPlayer,
);
- PRODUCT_BUNDLE_IDENTIFIER = ubi2.sonodrill;
+ PRODUCT_BUNDLE_IDENTIFIER = org.schurger.sonodrill;
PRODUCT_NAME = Sonodrill;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
diff --git a/iosApp/project.yml b/iosApp/project.yml
@@ -5,7 +5,7 @@ options:
iOS: "16.0"
settings:
base:
- DEVELOPMENT_TEAM: "8CH9CCT4MH"
+ DEVELOPMENT_TEAM: "CM5RQKJH56"
targets:
iosApp:
type: application
@@ -42,9 +42,9 @@ targets:
CFBundleTypeRole: Editor
LSHandlerRank: Owner
LSItemContentTypes:
- - ubi2.sonodrill.marks
+ - org.schurger.sonodrill.marks
UTExportedTypeDeclarations:
- - UTTypeIdentifier: ubi2.sonodrill.marks
+ - UTTypeIdentifier: org.schurger.sonodrill.marks
UTTypeDescription: Sonodrill marks
UTTypeConformsTo:
- public.json
@@ -74,7 +74,7 @@ targets:
com.apple.developer.ubiquity-kvstore-identifier: "$(TeamIdentifierPrefix)$(CFBundleIdentifier)"
settings:
base:
- PRODUCT_BUNDLE_IDENTIFIER: ubi2.sonodrill
+ PRODUCT_BUNDLE_IDENTIFIER: org.schurger.sonodrill
PRODUCT_NAME: Sonodrill
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
INFOPLIST_FILE: Info.plist