Edite un AndroidManifest al comstackr para eliminar la key de API

Actualmente estoy trabajando en un proyecto de Android y aprendiendo a usar git. Estoy bloqueado por un problema con git: tengo mi key de API de Google Maps declarada en mi file de manifiesto de Android:

<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="HEREISMYKEY"/> 

Ahora, me gustaría insert mi código en github, pero no puedo enviar mi AndroidManifest porque contiene mi key de API (que se supone que debe permanecer en secreto).

Me gustaría saber si hay alguna manera de modificarlo antes de cada inserción, o quizás modificarlo cada vez que compilo mi aplicación.

Gracias por tu ayuda !

Crea un nuevo file * .xml en tus res / values ​​(llámalo api-keys.xml o algo similar).

Cambia tu manifiesto para apuntar a esta cadena:

  <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/GoogleMapsKey"/> 

La primera vez que envía sus cambios al público, ingrese una key ficticia.

Luego edite el file con su key API real.

A continuación, agregue el file a su file .gitignore para que no se vuelva a presionar.

Bueno, lo que podrías hacer es poner tu file AndroidManifest.XML en tu file .gitignore y de esa forma no se abrirá con el rest de tu código … Luego, simplemente sube un file Léame o algo que tenga un AndroidManifest generalizado .xml fuente que cualquier persona debería copyr y pegar en un file AndroidManifest.xml para build su aplicación. De esta forma, puede hacer cambios en su aplicación, comstackrla según sea necesario y luego no tener que lidiar con la generalización en cada compilation y presionar el control de la fuente.

La forma en que me he acercado a problemas similares en el pasado es mediante el uso de twigs específicas en mi git repo para empujes púbicos.

Supongamos que tiene una sucursal maestra local con sus keys en el manifiesto. Cuando esté listo para ingresar a github (o en cualquier otro lugar), puede crear una nueva twig de "lanzamiento" sin historial. Puede ver un poco más sobre esto aquí: Cómo empujar una nueva twig sin la historia git branch --orphan release . Una vez que lo haga, elimine toda la información privada, envíe todos los files y envíe solo esa twig a la versión de git push origin release github git push origin release .

El problema con esto es que no tendrás un historial de confirmaciones, tal vez alguien más pueda encontrar algo mejor.