Skip to content

Instantly share code, notes, and snippets.

@JavierSolis
Created October 13, 2025 18:36
Show Gist options
  • Save JavierSolis/43236ebcac46caf3e97844dd6913090a to your computer and use it in GitHub Desktop.
Save JavierSolis/43236ebcac46caf3e97844dd6913090a to your computer and use it in GitHub Desktop.
Improve Android App Security with Git Ignoring

First Versión

### AndroidStudio ###

# Built application files
*.apk
*.ap_
*.aab

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle
.gradle/
build/

# Signing files
.signing/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio
/*/build/
/*/local.properties
/*/out
/*/*/build
/*/*/production
captures/
.navigation/
*.ipr
*~
*.swp

# Keystore files
*.jks
*.keystore

# Google Services (e.g. APIs or Firebase)
# google-services.json

# Android Patch
gen-external-apklibs

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# NDK
obj/

# IntelliJ IDEA
*.iml
*.iws
/out/

# User-specific configurations
.idea/caches/
.idea/libraries/
.idea/shelf/
.idea/workspace.xml
.idea/tasks.xml
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml
.idea/datasources.xml
.idea/dataSources.ids
.idea/sqlDataSources.xml
.idea/dynamic.xml
.idea/uiDesigner.xml
.idea/assetWizardSettings.xml
.idea/gradle.xml
.idea/jarRepositories.xml
.idea/navEditor.xml

# Legacy Eclipse project files
.classpath
.project
.cproject
.settings/

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.war
*.ear

# virtual machine crash logs
hs_err_pid*

## Plugin-specific files:

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Mongo Explorer plugin
.idea/mongoSettings.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

### AndroidStudio Patch ###

!/gradle/wrapper/gradle-wrapper.jar

Best versión

# Android Studio \ IDE files
.idea/
*.iml

#Include IDE copyright and code style
!.idea/copyright
!/.idea/codeStyles

# Gradle files
#(for multi-module projects)
**/build/
.gradle/

# Log/Crash files
*.log

# Local configuration files
*.properties

# Configurations files
#(only for open-source projects)
*.json

# Keystores
*.jks
*.keystore

#Screenshots
captures/

#NDK generated files
obj/
.cxx/
.externalNativeBuild

# Mac OS files
.DS_Store

Tips

Pattern Description Example
*.ext Matches all files with a given extension *.iml
file.txt Ignores an exact file api.properties
folder/ Ignores a specific directory build/
.folder/ Ignores a specific hidden directory (dot → hidden) .idea/
**/dir/ Recursive ignore for a directory **/tmp/
!pattern Excludes a file from being ignored !important.txt
# Used for notes # todo

Folders

Category Folder/File Why Ignore It
🏗️ Build Outputs build/ Generated and compiled files, reports, and outputs
⚙️ Gradle System Files .gradle/ Contains local Gradle caches and dependency data
🧩 IDE / Android Studio .idea/ Contains local workspace settings
🧾 Logs & Reports *.log Temporary build/test logs
⚙️ Native Code / NDK .externalNativeBuild/
.cxx/
Auto-generated when building native (C/C++) code
🧭 Local Configs *.properties Stores SDK paths, signing keys, or API keys
🔑 Signing configurations *.jks
*.keystore
Contains signing keys
🔒 External Services configurations *.json Configuration files. Should stay private for open-source projects
🧪 Test Data captures/ Contains screenshots from Android instrumented tests.
💾 OS-specific files .DS_Store
desktop.ini
Hidden OS metadata files. Mac / Windows (use one)

Not Ignore

Folder/File Purpose Why Commit
copyright/ Stores copyright profiles used for automatically adding headers to new files Ensures license/copyright headers are uniform
codeStyles/ Stores IDE code style rules Ensures everyone on the team formats code the same way

Prompt

In an Android project, is it safe to remove [CONFIG_OR_FILE_NAME] from .gitignore?
Explain briefly what it does, if it should be committed, and what could happen if I remove it.
Here’s my config file: (paste your existing config file)

Test a specific file or directory

git check-ignore -v <file_pat
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment