cleaner ci
This commit is contained in:
		
							
								
								
									
										1
									
								
								frontend/android/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								frontend/android/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -4,6 +4,7 @@ gradle-wrapper.jar
 | 
			
		||||
/gradlew
 | 
			
		||||
/gradlew.bat
 | 
			
		||||
/local.properties
 | 
			
		||||
/secrets.properties
 | 
			
		||||
GeneratedPluginRegistrant.java
 | 
			
		||||
 | 
			
		||||
# Remember to never publicly share your keystore.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										48
									
								
								frontend/android/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								frontend/android/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
## 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
 | 
			
		||||
    <meta-data
 | 
			
		||||
        android:name="com.google.android.geo.API_KEY"
 | 
			
		||||
        android:value="${MAPS_API_KEY}" />
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### 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
 | 
			
		||||
    ```
 | 
			
		||||
@@ -2,10 +2,12 @@ plugins {
 | 
			
		||||
    id "com.android.application"
 | 
			
		||||
    id "kotlin-android"
 | 
			
		||||
    id "dev.flutter.flutter-gradle-plugin"
 | 
			
		||||
    id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
def localProperties = new Properties()
 | 
			
		||||
def localPropertiesFile = rootProject.file('local.properties')
 | 
			
		||||
def localPropertiesFile = rootProject.file('secrets.properties')
 | 
			
		||||
if (localPropertiesFile.exists()) {
 | 
			
		||||
    localPropertiesFile.withReader('UTF-8') { reader ->
 | 
			
		||||
        localProperties.load(reader)
 | 
			
		||||
@@ -52,6 +54,9 @@ android {
 | 
			
		||||
        targetSdkVersion flutter.targetSdkVersion
 | 
			
		||||
        versionCode flutterVersionCode.toInteger()
 | 
			
		||||
        versionName flutterVersionName
 | 
			
		||||
        // Placeholders of keys that are replaced by the build system.
 | 
			
		||||
        manifestPlaceholders += [MAPS_API_KEY: "some value"]
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    buildTypes {
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
        />
 | 
			
		||||
        <meta-data
 | 
			
		||||
            android:name="com.google.android.geo.API_KEY"
 | 
			
		||||
            android:value="AIzaSyCeWk_D2xvfOHLidvV56EZeQCUybypEntw"
 | 
			
		||||
            android:value="${MAPS_API_KEY}"
 | 
			
		||||
        />
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -16,3 +16,14 @@ subprojects {
 | 
			
		||||
tasks.register("clean", Delete) {
 | 
			
		||||
    delete rootProject.buildDir
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
buildscript {
 | 
			
		||||
    repositories {
 | 
			
		||||
        google()
 | 
			
		||||
        mavenCentral()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    dependencies {
 | 
			
		||||
        classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										1
									
								
								frontend/android/fallback.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/android/fallback.properties
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
MAPS_API_KEY=Key
 | 
			
		||||
		Reference in New Issue
	
	Block a user