Git: rastrear o destrabar las keys de la API de Android

Estoy usando Google Maps API para Android. Presioné mi código en Github desde mi escritorio y luego lo descargué de Github en mi computadora portátil cuando quiero trabajar en el código mientras viajo.

En términos de la API de Google Maps, necesito poner la key de API en el manifiesto de Android así:

<application> ... <meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY"/> </application> 

Ahora, dado que tengo dos certificates de debugging diferentes (el de la computadora portátil y el del escritorio), las keys API de google también serían diferentes, ya que la huella digital SHA-1 de los certificates de debugging sería diferente.

¿Cómo puedo mantener esto único en ambas PC?

Creo que es necesario rastrear el manifiesto de Android en git, ya que es un componente bastante importante de cualquier aplicación, pero ¿cómo puedo evitar conflictos en la key de API cada vez que presiono?

No rastrear el manifiesto de Android: generarlo automáticamente en el pago de git.

Esto se denomina secuencia de commands de smudge , parte de un controller de filter de contenido , utilizando la statement de .gitattributes .

enter image description here (image de " Personalizar Git – Atributos de Git ", del " Libro de Pro Git ")

Esa secuencia de commands ' smudge ' (que debe escribir) necesitaría:

  • detectar su entorno
  • search la key correcta (posible desde otro file ya rastreado, y que enumeraría esas keys)
  • generar el manifiesto, utilizando una plantilla de manifiesto rastreado con un valor de marcador de position para replace.

Creo que la forma VonC es probablemente la forma más correcta de hacerlo, pero también se me ocurrió una solución rápida.

Debería crear un file xml personalizado separado en la carpeta values.xml, llámelo como lo desee. Llamé a las constantes.xml

Dentro del xml, deberías agregar tu key api:

 <?xml version="1.0" encoding="utf-8"?> <resources> <item name="google_places_geo_api" type="string">APIKEY</item> </resources> 

Lo he mantenido separado de strings.xml para que no tenga que rastrear este file en git. Yo hago un seguimiento de strings.xml en git.

En tu manifiesto:

 <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_places_geo_api"/> 

Ejecute y la key api se extrae del file constants.xml.

Sé que hay una respuesta aceptada Y una solución muy inteligente por parte del OP, pero creo que hay una forma aún más fácil de hacerlo.

El problema key surge cuando tiene diferentes certificates de debugging en diferentes PC. El mismo problema también es cierto si tiene un grupo de desarrolladores trabajando en la misma aplicación. Y lo que hacemos en el lugar donde trabajo es simplemente usar la misma key de debugging en cada computadora. Mata el problema en su raíz.

El primer desarrollador que hizo el código API de Maps me pasó a mí y al otro desarrollador su debug.keystore y usted reemplaza este file en su PC.

para Mac y Linux con Android Studio, este file se encuentra en $HOME/.android/debug.keystore

Tener este file reemplazado significa no tener que preocuparse por ninguna key de API. Incluso puede registrar este file en GIT para asegurarse de que no se pierda.

Simplemente agregue SHA-1 de ambos dispositivos con el mismo nombre de package

API de Google Maps para Android - androidcodegeeks.com