From 1607d9493ee5c42857efd01d7472212507f69ad8 Mon Sep 17 00:00:00 2001 From: Peter Kyeyune Date: Thu, 20 Feb 2025 09:27:06 +0300 Subject: [PATCH 1/7] add development API key support for Maps and Places in local.defaults.properties --- mobile-v3/android/local.defaults.properties | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mobile-v3/android/local.defaults.properties b/mobile-v3/android/local.defaults.properties index 5aa5c4a5ba..e35e5d8cf1 100644 --- a/mobile-v3/android/local.defaults.properties +++ b/mobile-v3/android/local.defaults.properties @@ -1 +1,4 @@ -MAPS_API_KEY=DEFAULT_API_KEY \ No newline at end of file +MAPS_API_KEY=DEFAULT_API_KEY +MAPS_API_KEY_DEV=DEFAULT_API_KEY +PLACES_API_KEY=DEFAULT_API_KEY +PLACES_API_KEY_DEV=DEFAULT_API_KEY \ No newline at end of file From cc31de4fdc6780317177a6502d461054ad2e2995 Mon Sep 17 00:00:00 2001 From: Peter Kyeyune Date: Thu, 20 Feb 2025 09:51:41 +0300 Subject: [PATCH 2/7] add API keys to local.properties in deployment workflow --- .github/workflows/deploy-android-to-play-store.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/deploy-android-to-play-store.yml b/.github/workflows/deploy-android-to-play-store.yml index 8c917be19f..6455aa13c0 100644 --- a/.github/workflows/deploy-android-to-play-store.yml +++ b/.github/workflows/deploy-android-to-play-store.yml @@ -61,6 +61,12 @@ jobs: gcloud secrets versions access latest --secret="prod-env-mobile-app" > .env.prod gcloud secrets versions access latest --secret="prod-env-mobile-CI" > .env.dev + - name: Add API keys to local.properties + run: | + cd android/ + echo "MAPS_API_KEY=$(gcloud secrets versions access latest --secret='GOOGLE_MAPS_API_KEY')" >> local.properties + echo "PLACES_API_KEY=$(gcloud secrets versions access latest --secret='GOOGLE_PLACES_API_KEY')" >> local.properties + - name: Setup Fastlane uses: ruby/setup-ruby@v1.123.0 with: From a2adb9a95e3871f71c065bbb3d8a470926e19b0b Mon Sep 17 00:00:00 2001 From: Peter Kyeyune Date: Thu, 20 Feb 2025 10:23:38 +0300 Subject: [PATCH 3/7] refactor: change API keys storage from local.properties to secrets.properties --- .github/workflows/deploy-android-to-play-store.yml | 6 +++--- mobile-v3/android/app/build.gradle | 8 ++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-android-to-play-store.yml b/.github/workflows/deploy-android-to-play-store.yml index 6455aa13c0..4b54ead083 100644 --- a/.github/workflows/deploy-android-to-play-store.yml +++ b/.github/workflows/deploy-android-to-play-store.yml @@ -61,11 +61,11 @@ jobs: gcloud secrets versions access latest --secret="prod-env-mobile-app" > .env.prod gcloud secrets versions access latest --secret="prod-env-mobile-CI" > .env.dev - - name: Add API keys to local.properties + - name: Add API keys to secrets.properties run: | cd android/ - echo "MAPS_API_KEY=$(gcloud secrets versions access latest --secret='GOOGLE_MAPS_API_KEY')" >> local.properties - echo "PLACES_API_KEY=$(gcloud secrets versions access latest --secret='GOOGLE_PLACES_API_KEY')" >> local.properties + echo "MAPS_API_KEY=$(gcloud secrets versions access latest --secret='GOOGLE_MAPS_API_KEY')" > secrets.properties + echo "PLACES_API_KEY=$(gcloud secrets versions access latest --secret='GOOGLE_PLACES_API_KEY')" >> secrets.properties - name: Setup Fastlane uses: ruby/setup-ruby@v1.123.0 diff --git a/mobile-v3/android/app/build.gradle b/mobile-v3/android/app/build.gradle index dba8227527..057512a599 100644 --- a/mobile-v3/android/app/build.gradle +++ b/mobile-v3/android/app/build.gradle @@ -31,6 +31,14 @@ if (appPropertiesFile.exists()) { } } +def secretsProperties = new Properties() +def secretsPropertiesFile = rootProject.file('secrets.properties') +if (secretsPropertiesFile.exists()) { + secretsPropertiesFile.withReader('UTF-8') { reader -> + secretsProperties.load(reader) + } +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { From a97045a4e36982a3f81897cfcea117530ea36ea5 Mon Sep 17 00:00:00 2001 From: Peter Kyeyune Date: Thu, 20 Feb 2025 10:32:33 +0300 Subject: [PATCH 4/7] refactor: comment out Google Places API key retrieval in build.gradle --- mobile-v3/android/app/build.gradle | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mobile-v3/android/app/build.gradle b/mobile-v3/android/app/build.gradle index 057512a599..792867f520 100644 --- a/mobile-v3/android/app/build.gradle +++ b/mobile-v3/android/app/build.gradle @@ -57,15 +57,15 @@ if (googleMapApiKeyDev == null) { throw new GradleException("Google Maps Dev Key not found. Define either google.maps.key.dev in key.properties or MAPS_API_KEY_DEV in secrets.properties") } -def googlePlacesKey = appProperties.getProperty('google.places.key') ?: secrets.getProperty('PLACES_API_KEY') -if (googlePlacesKey == null) { - throw new GradleException("Google Places Key not found. Define either google.places.key in key.properties or PLACES_API_KEY in secrets.properties") -} - -def googlePlacesKeyDev = appProperties.getProperty('google.places.key.dev') ?: secrets.getProperty('PLACES_API_KEY_DEV') -if (googlePlacesKeyDev == null) { - throw new GradleException("Google Places Dev Key not found. Define either google.places.key.dev in key.properties or PLACES_API_KEY_DEV in secrets.properties") -} +// def googlePlacesKey = appProperties.getProperty('google.places.key') ?: secrets.getProperty('PLACES_API_KEY') +// if (googlePlacesKey == null) { +// throw new GradleException("Google Places Key not found. Define either google.places.key in key.properties or PLACES_API_KEY in secrets.properties") +// } + +// def googlePlacesKeyDev = appProperties.getProperty('google.places.key.dev') ?: secrets.getProperty('PLACES_API_KEY_DEV') +// if (googlePlacesKeyDev == null) { +// throw new GradleException("Google Places Dev Key not found. Define either google.places.key.dev in key.properties or PLACES_API_KEY_DEV in secrets.properties") +// } def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { From 5af725f1882cc8d531f0592d8b43ccd5eea10bd7 Mon Sep 17 00:00:00 2001 From: Peter Kyeyune Date: Thu, 20 Feb 2025 10:33:27 +0300 Subject: [PATCH 5/7] refactor: remove API keys addition step from deployment workflow --- .github/workflows/deploy-android-to-play-store.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/deploy-android-to-play-store.yml b/.github/workflows/deploy-android-to-play-store.yml index 4b54ead083..8c917be19f 100644 --- a/.github/workflows/deploy-android-to-play-store.yml +++ b/.github/workflows/deploy-android-to-play-store.yml @@ -61,12 +61,6 @@ jobs: gcloud secrets versions access latest --secret="prod-env-mobile-app" > .env.prod gcloud secrets versions access latest --secret="prod-env-mobile-CI" > .env.dev - - name: Add API keys to secrets.properties - run: | - cd android/ - echo "MAPS_API_KEY=$(gcloud secrets versions access latest --secret='GOOGLE_MAPS_API_KEY')" > secrets.properties - echo "PLACES_API_KEY=$(gcloud secrets versions access latest --secret='GOOGLE_PLACES_API_KEY')" >> secrets.properties - - name: Setup Fastlane uses: ruby/setup-ruby@v1.123.0 with: From 6f8915feaf0ab7c4e78970431338d0bd4bc1ffd2 Mon Sep 17 00:00:00 2001 From: Peter Kyeyune Date: Thu, 20 Feb 2025 10:41:33 +0300 Subject: [PATCH 6/7] refactor: comment out Google Places API key retrieval in build.gradle --- mobile-v3/android/app/build.gradle | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/mobile-v3/android/app/build.gradle b/mobile-v3/android/app/build.gradle index 792867f520..91032a840b 100644 --- a/mobile-v3/android/app/build.gradle +++ b/mobile-v3/android/app/build.gradle @@ -57,15 +57,6 @@ if (googleMapApiKeyDev == null) { throw new GradleException("Google Maps Dev Key not found. Define either google.maps.key.dev in key.properties or MAPS_API_KEY_DEV in secrets.properties") } -// def googlePlacesKey = appProperties.getProperty('google.places.key') ?: secrets.getProperty('PLACES_API_KEY') -// if (googlePlacesKey == null) { -// throw new GradleException("Google Places Key not found. Define either google.places.key in key.properties or PLACES_API_KEY in secrets.properties") -// } - -// def googlePlacesKeyDev = appProperties.getProperty('google.places.key.dev') ?: secrets.getProperty('PLACES_API_KEY_DEV') -// if (googlePlacesKeyDev == null) { -// throw new GradleException("Google Places Dev Key not found. Define either google.places.key.dev in key.properties or PLACES_API_KEY_DEV in secrets.properties") -// } def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { @@ -118,7 +109,6 @@ android { dimension "airqo" manifestPlaceholders = [ googleMapsKey:googleMapApiKey, - googlePlacesKey: googlePlacesKey ] } @@ -127,7 +117,6 @@ android { applicationIdSuffix ".dev" manifestPlaceholders = [ googleMapsKey:googleMapApiKeyDev, - googlePlacesKey: googlePlacesKeyDev ] } From 3e4c79a742411c33fc6e36921f2d8cc34029bcac Mon Sep 17 00:00:00 2001 From: Peter Kyeyune Date: Thu, 20 Feb 2025 10:54:45 +0300 Subject: [PATCH 7/7] refactor: remove Google Places API key from AndroidManifest.xml --- mobile-v3/android/app/src/main/AndroidManifest.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/mobile-v3/android/app/src/main/AndroidManifest.xml b/mobile-v3/android/app/src/main/AndroidManifest.xml index 7f1a2dbcd9..079c59f5aa 100644 --- a/mobile-v3/android/app/src/main/AndroidManifest.xml +++ b/mobile-v3/android/app/src/main/AndroidManifest.xml @@ -11,11 +11,6 @@ - - -