diff --git a/scripts/build-wearos.sh b/scripts/build-wearos.sh index 672b196..6766a89 100755 --- a/scripts/build-wearos.sh +++ b/scripts/build-wearos.sh @@ -30,6 +30,21 @@ cd "$WEAR_DIR" echo "Building WearOS ($PROFILE) v$VERSION ($VERSION_CODE)..." if [ "$PROFILE" = "release" ]; then + if [ ! -f "$WEAR_DIR/../credentials.json" ]; then + echo "credentials.json not found. Downloading from EAS..." + cd "$PROJECT_ROOT" + eas credentials --platform android --non-interactive 2>/dev/null || { + echo "Auto-download failed. Run manually:" + echo " eas credentials --platform android" + echo " → Choose 'credentials.json: Upload/Download credentials'" + echo " → Choose 'Download credentials from EAS to credentials.json'" + echo " Then: cp credentials.json targets/wearos/credentials.json" + exit 1 + } + cp credentials.json "$WEAR_DIR/credentials.json" + echo "credentials.json copied to targets/wearos/" + cd "$WEAR_DIR" + fi ./gradlew assembleRelease -PversionName="$VERSION" -PversionCode="$VERSION_CODE" APK_PATH="app/build/outputs/apk/release/app-release.apk" else diff --git a/targets/wearos/app/build.gradle.kts b/targets/wearos/app/build.gradle.kts index 601e922..8f4df02 100644 --- a/targets/wearos/app/build.gradle.kts +++ b/targets/wearos/app/build.gradle.kts @@ -5,6 +5,8 @@ plugins { id("io.sentry.android.gradle") version "6.17.0" } +val credentialsFile = rootProject.file("../credentials.json") + android { namespace = "nl.guidoit.swimbuddy" compileSdk = 35 @@ -22,6 +24,20 @@ android { manifestPlaceholders["sentryDsn"] = sentryDsn } + signingConfigs { + if (credentialsFile.exists()) { + create("release") { + val credentials = groovy.json.JsonSlurper().parse(credentialsFile) as Map<*, *> + val keystoreData = credentials["android"]!! as Map<*, *> + val keyData = keystoreData["keystore"]!! as Map<*, *> + storeFile = rootProject.file(keyData["keystorePath"] as String) + storePassword = keyData["keystorePassword"] as String + keyAlias = keyData["keyAlias"] as String + keyPassword = keyData["keyPassword"] as? String ?: keyData["keystorePassword"] as String + } + } + } + buildTypes { release { isMinifyEnabled = true @@ -30,6 +46,9 @@ android { getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) + if (credentialsFile.exists()) { + signingConfig = signingConfigs.getByName("release") + } } } diff --git a/targets/wearos/app/src/main/AndroidManifest.xml b/targets/wearos/app/src/main/AndroidManifest.xml index ab9d56f..2287902 100644 --- a/targets/wearos/app/src/main/AndroidManifest.xml +++ b/targets/wearos/app/src/main/AndroidManifest.xml @@ -34,6 +34,10 @@ android:name="io.sentry.attach-screenshot" android:value="true" /> + +