Редактирование 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 (который должен оставаться секретным).
Я хотел бы знать, есть ли способ изменить его перед каждым нажатием или изменить его каждый раз при компиляции моего приложения?
Благодарим за помощь!
Ответы
Ответ 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
.
Проблема с этим заключается в том, что у вас не будет истории фиксации, возможно, кто-то еще может придумать что-то лучшее.