diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a03ead06..dbe81f55 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -449,6 +449,19 @@ jobs: fi IPA_SIZE=$(stat -c%s "$IPA_FILE" 2>/dev/null || stat -f%z "$IPA_FILE") + BUNDLE_ID=$(python3 - "$IPA_FILE" <<'PY' + import plistlib + import sys + import zipfile + + with zipfile.ZipFile(sys.argv[1]) as ipa: + info_path = next(name for name in ipa.namelist() + if name.startswith("Payload/") + and name.count("/") == 2 + and name.endswith(".app/Info.plist")) + print(plistlib.loads(ipa.read(info_path))["CFBundleIdentifier"]) + PY + ) if [ ! -f apps.json ]; then echo "WARNING: apps.json not found on main, skipping" @@ -456,10 +469,11 @@ jobs: fi jq --arg ver "$VERSION_NUM" \ + --arg bundle "$BUNDLE_ID" \ --arg date "$DATE" \ --arg url "https://github.com/${REPOSITORY}/releases/download/${VERSION}/SpotiFLAC-${VERSION}-ios-unsigned.ipa" \ --argjson size "$IPA_SIZE" \ - '.apps[0].version = $ver | .apps[0].versionDate = $date | .apps[0].downloadURL = $url | .apps[0].size = $size' \ + '.apps[0].bundleIdentifier = $bundle | .apps[0].version = $ver | .apps[0].versionDate = $date | .apps[0].downloadURL = $url | .apps[0].size = $size' \ apps.json > apps.json.tmp && mv apps.json.tmp apps.json echo "Updated apps.json:" diff --git a/apps.json b/apps.json index 1b993bac..b89446ed 100644 --- a/apps.json +++ b/apps.json @@ -5,7 +5,7 @@ "apps": [ { "name": "SpotiFLAC Mobile", - "bundleIdentifier": "com.zarz.spotiflacAndroid", + "bundleIdentifier": "com.zarz.spotiflac", "developerName": "zarzet", "version": "4.9.6", "versionDate": "2026-09-07", diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 4632f304..1b81b7d8 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -499,7 +499,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.zarz.spotiflacAndroid; + PRODUCT_BUNDLE_IDENTIFIER = com.zarz.spotiflac; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -516,7 +516,7 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.zarz.spotiflacAndroid.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.zarz.spotiflac.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -534,7 +534,7 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.zarz.spotiflacAndroid.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.zarz.spotiflac.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; @@ -550,7 +550,7 @@ CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.zarz.spotiflacAndroid.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.zarz.spotiflac.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; @@ -681,7 +681,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.zarz.spotiflacAndroid; + PRODUCT_BUNDLE_IDENTIFIER = com.zarz.spotiflac; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -703,7 +703,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.zarz.spotiflacAndroid; + PRODUCT_BUNDLE_IDENTIFIER = com.zarz.spotiflac; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0;