Подтвердить что ты не робот

Редактирование AndroidManifest при компиляции для удаления API-ключа

В настоящее время я работаю над проектом Android и изучаю, как использовать git. Я заблокирован из-за проблемы с git: у меня есть api-ключ Google Maps, указанный в моем файле-манифеста Android:

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

Теперь я хотел бы нажать мой код в github, но я не могу нажать мой AndroidManifest, потому что он содержит мой ключ api (который должен оставаться секретным).

Я хотел бы знать, есть ли способ изменить его перед каждым нажатием или изменить его каждый раз при компиляции моего приложения?

Благодарим за помощь!

4b9b3361

Ответ 1

Создайте новый *.xml файл в своих res/values ​​(назовите его api-keys.xml или что-то подобное).

Измените свой манифест, чтобы указать на эту строку:

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

Когда вы сначала нажимаете свои изменения публике, вставьте фиктивный ключ.

Затем отредактируйте файл с помощью вашего реального ключа API.

Затем добавьте файл в ваш файл .gitignore, чтобы он больше не возвращался.

Ответ 2

Хорошо, что вы можете сделать, это поместить ваш файл AndroidManifest.XML в ваш файл .gitignore, и таким образом он не будет перенаправлен на остальную часть вашего кода. Затем просто нажмите вверх файл readme или что-то, что имеет обобщенный источник AndroidManifest.xml, который каждый должен будет скопировать и вставить в файл AndroidManifest.xml, чтобы создать ваше приложение. Таким образом, вы можете вносить изменения в свое приложение, создавать его по мере необходимости, а затем не иметь дело с обобщением его на каждую сборку и нажимать на источник управления.

Ответ 3

То, как я сталкивался с подобными проблемами в прошлом, - это использование определенных ветвей в моем репозитории git для лобовых нажатий.

Скажите, что у вас есть локальная ветвь мастера с вашими ключами в манифесте. Когда вы будете готовы нажать github (или где бы то ни было), вы можете создать новую ветвь "release" без истории. Вы можете увидеть немного больше об этом здесь: Как перенаправить новую ветку без истории git branch --orphan release. Как только вы сделаете это, удалите всю личную информацию, скопируйте все файлы и нажмите только эту ветвь в github git push origin release.

Проблема с этим заключается в том, что у вас не будет истории фиксации, возможно, кто-то еще может придумать что-то лучшее.