Comenzando google-services.json a GitHub
Estoy creando un proyecto android público y estoy usando el servicio de inicio de sesión de Google. Lo estoy haciendo de acuerdo con este tutorial . Como dice, tengo el archivo google-services.json. ¿Necesito confirmar el archivo anterior a Github? ¿Otros desarrolladores (si alguien contribuye) necesitan este archivo? ¿O tienen que crear allí propio? Por cierto, estoy usando Travis-CI. ¿Afectará este archivo a la construcción de CI?
- No se puede construir el proyecto con Travis-CI y Android
- ¿Cuál es la mejor práctica para usar keystores para firmar la versión de lanzamiento de una aplicación para Android en Travis CI?
- Leer versionName de build.gradle en bash
- Travis.yml ./gradlew: Permiso denegado
- Archivo de clase para android.support.v4.widget.DrawerLayoutImpl no se encuentra en travis support-v4 21.0
- Uso de Travis CI con Android
- "Invalid --abi armeabi-v7a para el destino seleccionado" con las API de Google
- Retrolambda en Travis CI
- Cómo corregir el permiso gradlew denegado en travis.yml?
- Error de compilación de Android: filtro de paquete desconocido
- ¿Cómo burlar el buildConfigField de Gradle para la construcción de Travis CI?
- Travis CI para Android - Error de compilación: No se pudo encontrar el destino y no se encontraron dependencias
- Travis-CI Android pruebas con Gradle mantener el tiempo de espera
Puede crear una nueva variante de construcción y almacenar una plantilla google-services.json
que se utilizará para su creación en su plataforma CI en su aplicación build.gradle
.
Utilice un google-services.json
diferente para la nueva variante de generación de dev
(consulte esta publicación ). Agregue la siguiente plantilla google-services.json
a la carpeta app/src/dev
:
{ "project_info": { "project_number": "", "project_id": "" }, "client": [ { "client_info": { "mobilesdk_app_id": "", "android_client_info": { "package_name": "com.your.package" } }, "oauth_client": [ { "client_id": "", "client_type": 3 }, { "client_id": "", "client_type": 1, "android_info": { "package_name": "com.your.package", "certificate_hash": "" } } ], "api_key": [ { "current_key": "" } ], "services": { "analytics_service": { "status": 2, "analytics_property": { "tracking_id": "" } }, "appinvite_service": { "status": 1, "other_platform_oauth_client": [] }, "ads_service": { "status": 1 } } } ], "configuration_version": "1" }
Tenga en cuenta que he extendido este google-servicios en caso de que también utilice Google Analytics o GCM servicio.
Tendrías la siguiente configuración:
app/ ├── src/ │ ├── main/ │ └── dev/ │ └── google-services.json ├── google-services.json └── build.gradle
Puede utilizar:
- Un nuevo tipo de construcción
- Un sabor nuevo producto (si ya tiene los ya existentes)
Tipo de construcción
Agregue el siguiente tipo de compilación :
buildTypes { dev { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
No necesitamos construir esta variante de construcción "dev" en la compilación regular, por lo que puede excluir esta variante si no se especifica un parámetro. Añada lo siguiente a su aplicación build.gradle
:
def build_param = "${build}"; if (build_param != "dev") { //exclude production build android.variantFilter { variant -> if (variant.buildType.name.equals('dev')) { variant.setIgnore(true); } } } else { //exclude all except production build android.variantFilter { variant -> if (!variant.buildType.name.equals('dev')) { variant.setIgnore(true); } } }
Sabor del producto
Agregue el sabor del producto dev
a los ya existentes:
productFlavors { full { } dev { } }
Para quitar este sabor de producto dev
de la compilación regular:
def build_param = "${build}"; if (build_param != "dev") { //exclude dev android.variantFilter { variant -> if (variant.getFlavors().get(0).name.equals('dev')) { variant.setIgnore(true); } } } else { //exclude all but dev android.variantFilter { variant -> if (!variant.getFlavors().get(0).name.equals('dev')) { variant.setIgnore(true); } } }
Eventualmente, agregue su módulo de aplicación google-services.json
a .gitignore
:
app/google-services.json
Anteriormente nos hemos asegurado de que esta variante dev
sólo se utilizará cuando se especifique parameter build=dev
Editar .travis.yml
para modificar la configuración de construcción:
script: - ./gradlew clean build -Pbuild=dev
-Pbuild=dev
solo creará la variante de construcción de dev utilizando google-services.json
ubicado en app/src/dev/google-services.json
Eche un vistazo a este proyecto de ejemplo que está utilizando el proyecto google-services de Google
En el registro de Travis , puede ver que el archivo JSON que se está analizando es el de la variante de construcción dev
:
Parsing json file: /home/travis/build/bertrandmartel/android-googlesignin/app/src/dev/google-services.json
Nota adicional
Tenga en cuenta que este método no se limita a CI y puede ampliarse para su generación de producción cuando requiera una producción google-services.json
o un AndroidManifest.xml
diferente (con algunas propiedades específicas como la clave fabric.io )
Compruebe este método para evitar el compromiso de las teclas de tejido incrustadas en AndroidManifest.xml (y no se pueden importar desde gradle) que esté utilizando una variante de construcción diferente y utilizando un parámetro para habilitar la generación de producción.
- Barra de herramientas de Android con el botón de inicio y de retroceso
- ¿Cómo cambiar de tema (modo nocturno) sin reiniciar la actividad?