## Android Setup ### Keystore setup ```bash keytool -genkey -v -keystore release.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias release ``` - This is required to store local credentials securely (not used for now). - But necesseary in order to restrict the particular api key to a particular app (through the sha1 of the associated keystore). ### Building and secret credentials Following the guide under [https://developers.google.com/maps/flutter-package/config#android_1](https://developers.google.com/maps/flutter-package/config#android_1). - Add the following to `android/build.gradle`: ```gradle buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } } ``` - Add the following to `android/app/build.gradle`: ```gradle plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' } ``` - Add the credentials to `android/secrets.properties`: ```properties MAPS_API_KEY=YOUR_API_KEY ``` - Reference the credentials in `android/app/src/main/AndroidManifest.xml`: ```xml ``` ### Using the credentials in CI - Add the base64 encoded credentials to the repository secrets (e.g. `ANDROID_SECRETS`). ```bash base64 -i android/secrets.properties ``` - Use the following in the CI script: ```bash echo {{ secrets.ANDROID_SECRETS }} | base64 -d > android/secrets.properties ```