github/gitignore · Android.gitignore
Разбор шаблона .gitignore для Android
Почему Android.gitignore игнорирует кэш Gradle, результаты сборки, local.properties, APK и AAB, .idea, хранилище ключей подписи и google-services.json, и как принимать решения.
Android.gitignore предназначен для проектов приложений, создаваемых в Android Studio и Gradle. Он блокирует кэш сборки Gradle и артефакты, путь к SDK, имеющий смысл только на компьютере разработчика, и чувствительные файлы вроде ключей подписи приложения.
В отличие от шаблона JetBrains, он игнорирует папку IDE .idea/ целиком. Чтобы делиться с командой стилем кода или конфигурациями запуска, это правило нужно скорректировать.
Разбор правил
| Шаблон | Что и почему игнорируется |
|---|---|
.gradle/build/.kotlin/ | Кэш и сборка GradleКэш задач Gradle, результаты сборки модулей и данные плагина Kotlin 2.0. Всё это пересоздаётся. |
local.properties | Локальные настройкиСодержит путь установки Android SDK и NDK (sdk.dir), который у каждого свой. Android Studio создаёт файл автоматически. |
.externalNativeBuild/.cxx/ | Нативная сборкаПромежуточные папки, которые появляются при сборке кода C/C++ через CMake или ndk-build. |
*.apk*.aaboutput-metadata.json | Пакеты приложенияСобранные APK и App Bundle и их метаданные. С ними работают при загрузке в магазин или в конвейере выпуска. |
*.iml.idea/misc.xmldeploymentTargetDropDown.xmlrender.experimental.xml | Файлы IDEФайлы модулей Android Studio, папка настроек IDE и файлы с личным состоянием, например выбранное целевое устройство для запуска. |
*.jks*.keystore | Ключи подписиХранилища ключей для подписи приложения. При утечке кто-то другой сможет распространять приложение с той же подписью, поэтому в репозиторий их не кладут. |
google-services.json | Настройки Firebase и сервисов GoogleСодержат идентификатор проекта Firebase и API-ключ. Это не секретный ключ, но в публичных репозиториях его часто исключают, и тогда для сборки его нужно отдельно подставлять в CI. |
captures/*.hprof*.log | Диагностические файлыЗаписи профилировщика, дампы кучи и логи. Они большие и одноразовые. |
На что обратить внимание на практике
gradlew,gradlew.batиgradle/wrapper/коммитьте. Этот шаблон не игнорирует*.jar, но если использовать его вместе с шаблоном Java, поставьте шаблон Gradle после него, чтобы сохранить jar обёртки.- Если хотите делиться стилем кода (
.idea/codeStyles/), используйте вместо.idea/детальные правила шаблона JetBrains. - Если ваша команда коммитит
google-services.json, удалите эту строку. В любом случае ключи сервисных аккаунтов (JSON) не коммитят.
Исходный шаблон
Android.gitignore
# Gradle files.gradle/build/.kotlin/# Local configuration file (sdk path, etc)local.properties# Log/OS Files*.log# Android Studio generated files and folderscaptures/.externalNativeBuild/.cxx/*.aab*.apkoutput-metadata.json# IntelliJ*.iml.idea/misc.xmldeploymentTargetDropDown.xmlrender.experimental.xml# Keystore files*.jks*.keystore# Google Services (e.g. APIs or Firebase)google-services.json# Android Profiling*.hprof
Источник шаблонов: github/gitignore/Android.gitignore @356fd7b (2026-09-11) · CC0-1.0