Cosa dovrebbe essere nel mio .gitignore per un progetto Android Studio?

Quali file dovrebbero essere nel mio .gitignore per un progetto Android Studio?

Ho visto diversi esempi che includono .iml ma i documenti IntelliJ dicono che .iml deve essere incluso nel controllo del codice sorgente.

Aggiornato ad Android Studio 3.0 Si prega di condividere gli elementi mancanti nei commenti.

Una risposta tardiva, ma nessuna delle risposte qui e qui era giusta sui soldi per noi …

Quindi, ecco il nostro file gitignore:

 #built application files *.apk *.ap_ # files for the dex VM *.dex # Java class files *.class # generated files bin/ gen/ # Local configuration file (sdk path, etc) local.properties # Windows thumbnail db Thumbs.db # OSX files .DS_Store # Android Studio *.iml .idea #.idea/workspace.xml - remove # and delete .idea if it better suit your needs. .gradle build/ .navigation captures/ output.json #NDK obj/ .externalNativeBuild 

Da Android Studio 2.2 e fino a 3.0, vengono creati nuovi progetti con questo file gitignore:

 *.iml .gradle /local.properties /.idea/workspace.xml /.idea/libraries .DS_Store /build /captures .externalNativeBuild 

Obsoleto – per il formato di progetto più vecchio, aggiungi questa sezione al tuo file gitignore:

 /*/out /*/*/build /*/*/production *.iws *.ipr *~ *.swp 

Questo file deve trovarsi nella cartella principale del progetto e non nella cartella del modulo del progetto.

Modifica note:

  1. Dalla versione 0.3+ sembra che tu possa impegnare e spingere i file * .iml e build.gradle . Se il tuo progetto è basato su Gradle: nella nuova finestra di dialogo open / import, dovresti selezionare la casella di controllo "use auto import" e contrassegnare il "use default gradle wrapper (recommended)" . Tutti i percorsi sono ora relativi come suggerito da @George.

  2. Risposta aggiornata in base alla sorgente allegata @ 128 KB e ai suggerimenti @Skela

Basandosi sul mio normale Android .gitignore , e dopo aver letto la documentazione sul sito Web Intellij IDEA e aver letto i post su StackOverflow, ho costruito il seguente file:

 # built application files *.apk *.ap_ # files for the dex VM *.dex # Java class files *.class # built native files (uncomment if you build your own) # *.o # *.so # generated files bin/ gen/ # Ignore gradle files .gradle/ build/ # Local configuration file (sdk path, etc) local.properties # Proguard folder generated by Eclipse proguard/ # Eclipse Metadata .metadata/ # Mac OS X clutter *.DS_Store # Windows clutter Thumbs.db # Intellij IDEA (see https://intellij-support.jetbrains.com/entries/23393067) .idea/workspace.xml .idea/tasks.xml .idea/datasources.xml .idea/dataSources.ids 

Si noti inoltre che, come sottolineato, la sezione dei file nativi creati è utile soprattutto quando si crea il proprio codice nativo con l’NDK di Android. Se, d’altra parte, stai usando una libreria di terze parti che include questi file, potresti voler rimuovere queste righe (* .o e * .so) dal tuo .gitignore.

Aggiornato il 7/2015:

Ecco la fonte definitiva di JetBrains


Formato del progetto basato su directory (directory .idea)

Questo formato è utilizzato da tutte le versioni IDE recenti per impostazione predefinita. Ecco cosa è necessario condividere:

  • Tutti i file nella directory .idea nella root di progetto tranne i file workspace.xml e tasks.xml che memorizzano le impostazioni specifiche dell’utente
  • Tutti i file del modulo .iml che possono trovarsi in diverse directory del modulo (si applica a IntelliJ IDEA)

Fai attenzione a condividere quanto segue:

  • Manufatti Android che producono una build firmata (conterrà password keystore)
  • In IDEA 13 e precedenti dataSources.ids , datasources.xml può contenere password di database. IDEA 14 risolve questo problema .

Potresti considerare di non condividere quanto segue:

  • file gradle.xml, vedere questa discussione
  • cartella dizionari utente (per evitare conflitti se altri sviluppatori hanno lo stesso nome)
  • File XML sotto .idea/libraries nel caso in cui siano generati dal progetto Gradle

Formato del progetto legacy (file .ipr / .iml / .iws )

  • Condividi il file .ipr del progetto e tutti i file del modulo .iml , non condividere il file .iws mentre memorizza le impostazioni specifiche dell’utente

Sebbene queste istruzioni siano per IntelliJ IDEA, sono valide al 100% per Android Studio.


Ecco uno snippet .gitignore che incorpora tutte le regole precedenti:

 # Android Studio / IntelliJ IDEA *.iws .idea/libraries .idea/tasks.xml .idea/vcs.xml .idea/workspace.xml 

Non sono d’accordo con tutte queste risposte. La seguente configurazione funziona perfettamente per l’app della nostra organizzazione.

Ignoro:

  • /build
  • /.idea (con possibili eccezioni, vedere i commenti nella risposta di dalewking )
  • *.iml
  • local.properties

Penso che quasi tutti siano d’accordo /build .

Mi sono stancato di vedere costantemente messaggi sui vari file /.idea che Gradle crea o cancella in /.idea . build.gradle verrà eseguito sul locale dello sviluppatore al momento del primo build.gradle del progetto, quindi perché è necessario che i file XML siano sottoposti alla versione? Android Studio genererà anche il resto di /.idea quando uno sviluppatore crea un progetto usando Check out from Version Control , quindi perché è necessario eseguire la versione di qualsiasi cosa in quella cartella?

Se *.iml è versione, un nuovo utente dovrà nominare il progetto esattamente come era quando è stato eseguito il commit. Poiché questo è anche un file generato, perché è la versione in primo luogo?

I file local.properties puntano a un percorso assoluto sul file system per l’SDK, quindi non dovrebbe essere sottoposto alla versione.

Modifica 1 : aggiunto .gradle per ignorare la cache di gradle che non dovrebbe essere versionata (grazie Vasily Makarov ).

Modifica 2 : aggiunto .DS_Store ora che sto usando Mac. Questa cartella è specifica per Mac e non dovrebbe essere versionata.

Nota aggiuntiva : probabilmente si desidera aggiungere una directory per inserire le chiavi di firma quando si crea una versione di rilascio.

Per comodità copia / incolla :

 .gradle /build /.idea *.iml local.properties .DS_Store 

Io uso questo .gitignore. L’ho trovato su: http://th4t.net/android-studio-gitignore.html

 *.iml *.iws *.ipr .idea/ .gradle/ local.properties */build/ *~ *.swp 

Nel caso di Android Studio, gli unici file che devono essere salvati nel controllo di versione sono i file necessari per creare l’applicazione dalla riga di comando usando gradle. Quindi puoi ignorare:

  • * .iml
  • .idea
  • build

Tuttavia, se si salvano le impostazioni IDE, come le impostazioni di stile del codice personalizzato, vengono salvate nella cartella .idea. Se vuoi quelle modifiche nel controllo della versione, allora salverei anche i file IDEA (* .iml e .idea).

Il mio consiglio sarebbe anche di non ignorare la cartella .idea.

Ho importato un progetto Eclipse basato su Git su Android Studio e questo è andato bene. In seguito, volevo importare questo progetto con Git (come la prima volta) su un’altra macchina con Android Studio, ma non funzionava. Android Studio ha caricato tutti i file ma non è stato in grado di “vedere” il progetto come un progetto. Potrei solo aprire Git-files.

Durante l’importazione del progetto per la prima volta (da Eclipse ad Android Studio) il mio vecchio .gitignore è stato sovrascritto e il nuovo aspetto era il seguente:

  • .idea / .name
  • .idea / compiler.xml
  • .idea / copyright / profiles_settings.xml
  • .idea / encodings.xml
  • .idea / librerie / libs.xml
  • .idea / misc.xml
  • .idea / modules.xml
  • .idea / campo di applicazione / scope_settings.xml
  • .idea / vcs.xml
  • .idea / workspace.xml

Quindi, ho provato a usare un gitignore vuoto e ora ha funzionato. L’altro Studio Android potrebbe caricare i file e il progetto. Immagino che alcuni file non siano importanti (profiles_settings.xml) per Git e l’importazione, ma sono solo felice che abbia funzionato.

Per i progetti Android Studio 3.0, utilizzare quanto segue:

.gitignore

 .gradle .idea *.iml gradle.properties local.properties .DS_Store build 

Cartella del progetto Gradle

L’unica cosa che dovrebbe essere nella cartella del progetto (Gradle) dopo la clonazione del repository è questa struttura (almeno per i casi d’uso che ho riscontrato fino ad ora):

 /app /gradle .gitignore build.gradle build.properties gradlew gradle.bat settings.gradle 

Non è necessario aggiungere al controllo sorgente uno dei seguenti elementi:

 .idea/ .gradle/ *.iml build/ local.properties 

Quindi puoi configurare hgignore o gitignore di conseguenza.

La prima volta che uno sviluppatore clona il controllo del codice sorgente può andare:

  1. Apri Android Studio
  2. Importa progetto
  3. Cercare il build.gradle nel repository clonato e aprirlo

È tutto

PS: Android Studio quindi, tramite Maven, otterrà il plugin gradle assumendo che il tuo build.gradle assomigli a questo:

 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.12.2' } } allprojects { repositories { mavenCentral() } } 

Android Studio genererà il contenuto della cartella .idea (incluso workspace.xml, che non dovrebbe essere nel controllo del codice sorgente in quanto generato ) e la cartella .gradle.

Questo approccio è Eclipse-friendly nel modo in cui il controllo del codice sorgente non sa nulla di Android Studio. Android Studio necessita solo di build.gradle per importare un progetto e generare il resto.

Supporto per il commit della cartella .idea (escluso workspace.xml e tasks.xml ). Ma sto iniziando a concludere che i file .iml dovrebbero essere ignorati.

Ecco il problema:

Aprite un progetto in una directory chiamata “foo” per esempio e otterrete foo.iml e tutto sembra andare per il meglio. Il problema è che se semplicemente rinominando la directory in foo2 (o clonandola in un altro nome di directory) quando provi ad aprire il progetto in Android Studio otterrai tre cose:

  • Un nuovo file iml chiamato foo2.iml
  • Il file iml per il tuo progetto Android verrà modificato in modo da puntare ora a foo2 come genitore
  • .idea / modules.xml avrà una linea aggiunta per foo2.iml quindi ha sia il vecchio file iml che quello per la nuova directory

Non riesco a trovare alcun modo per impedire a Android Studio di eseguire questa generazione di file iml quando il progetto è archiviato in una directory diversa. Aggiungerli al controllo del codice causerà problemi. Quindi penso che forse dovremmo ignorare i file * .iml e .idea/modules.xml

è il modo migliore per generare .gitignore tramite qui: http://www.gitignore.io/

Testato con Android Studio 3.0

Potrebbe essere necessario installare il plugin .ignore .

È ansible generare automaticamente il file .gitignore per Android. Fai clic destro sulla cartella e segui

Aggiungi il file .gitignore

Quindi selezionare Android dal pannello di sinistra e fare clic su Genera

Genera il file .gitignore

Android Studio genererà il file .gitignore che contiene tutti i file che devono essere ignorati.

Tratto da http://menukanows.com/how-to-add-gitignore-file-in-android-project/

Dipende da come viene mantenuto il formato del tuo progetto:

Hai due opzioni:

  1. Formato basato su directory (Avrai una cartella .idea che contiene i file specifici del progetto)
  2. Formato basato su file (i file di configurazione sono .iws e .ipr )

Rif: http://www.jetbrains.com/idea/webhelp/project.html

I file impegnati per il controllo della versione dipendono da quanto sopra:

  1. Includere la cartella .idea nel controllo della versione, escludere workspace.xml e tasks.xml
  2. .ipr file .ipr controllo della versione e tutti i file del modulo .iml escludono il file .iws mentre memorizza le impostazioni specifiche dell’utente.

Rif: https://intellij-support.jetbrains.com/entries/23393067

Praticamente qualsiasi file che viene rigenerato automaticamente.

Un buon test è quello di clonare il repository e vedere se Android Studio è in grado di interpretare ed eseguire il tuo progetto immediatamente (generando ciò che manca).
In caso contrario, trova ciò che manca e assicurati che non venga ignorato, ma aggiunto al repository.

Detto questo, puoi fare un esempio sui file .gitignore esistenti, come quello Android .

 # built application files *.apk *.ap_ # files for the dex VM *.dex # Java class files *.class # generated files bin/ gen/ # Local configuration file (sdk path, etc) local.properties # Eclipse project files .classpath .project # Proguard folder generated by Eclipse proguard/ # Intellij project files *.iml *.ipr *.iws .idea/ 

Sono kosher con l’aggiunta dei file .iml e Intellij sez per aggiungere la cartella .idea ma ignoro .idea / workspace.xml e .idea / tasks.xml, ma per quanto riguarda .idea / libraries /?

Non vedo come abbia senso aggiungere questo. Ha una lista di file XML che elencano le librerie che il progetto Android Studio dovrebbe conoscere. Questi dovrebbero venire invece da build.gradle dipendenze definite – non un file di progetto IDE.

Anche il contenuto di uno di questi file assomiglia a questo:

    

Non ha senso impegnare questo. Cosa succede se l’utente ha specificato una diversa directory home per gradle, o se usa una versione gradle diversa, il percorso sotto .gradle/caches/artifacts-xxx sarà diverso per loro (es. artifacts- il numero aggiunto alla fine sarà si riferiscono al rilascio della versione gradle che stai usando.) Questi percorsi non sono universali, eppure il consiglio è di controllare tutto questo?

A partire da Android Studio 0.8.4 il file .gitignore viene generato automaticamente all’avvio di un nuovo progetto. Di default contiene:

 .gradle /local.properties /.idea/workspace.xml /.idea/libraries .DS_Store /build 

So che questo è un vecchio argomento e ci sono sicuramente molte opzioni, ma preferisco davvero gibo di Simon Whitaker. È super semplice da usare, multipiattaforma (mac, * nix e windows), e usa il repository github gitignore modo che sia (fondamentalmente) sempre aggiornato.

Assicurati che la cache locale sia aggiornata:

  $ gibo --upgrade From https://github.com/github/gitignore * branch master -> FETCH_HEAD Current branch master is up to date. 

Cerca la lingua / la tecnologia di cui hai bisogno:

  $ gibo --search android Android 

Mostra il file .gitignore:

  $ gibo Android ### Android # Built application files *.apk *.ap_ # Files for the Dalvik VM *.dex # Java class files *.class # Generated files bin/ gen/ # Gradle files .gradle/ build/ # Local configuration file (sdk path, etc) local.properties # Proguard folder generated by Eclipse proguard/ # Log Files *.log 

Ora, aggiungilo al file .gitignore del tuo progetto:

  $ gibo Android >> .gitignore 

(Assicurati di usare >> per aggiungere al file .gitignore del tuo progetto: uno > lo sovrascriverà – come ho fatto molte volte in caso di incidente!)

So che questo non risponde alla domanda esatta dell’OP, ma l’uso di gibo lo rende così praticamente non devi più pensare a “la domanda”! .. è carino! 😉

Per avere un’idea migliore, tutto ciò di cui hai bisogno sono i seguenti file

  • App
  • build.gradle
  • settings.gradle

Struttura di progetto Android di base

Puoi mettere tutto il resto nel file .gitignore. Tutte le modifiche apportate all’app si trovano principalmente in questi file e cartelle. Il resto che vedi in un progetto di base sono i file build gradle oi file di configurazione di Android Studio.

Se utilizzi Android Studio, puoi utilizzare “Importa progetto” per creare correttamente il progetto. In alternativa è ansible creare utilizzando la riga di comando, seguire Creazione di progetti Android con Gradle .

È meglio aggiungere l’elenco .gitignore attraverso il tempo di sviluppo per evitare effetti collaterali sconosciuti quando il Controllo versione non funziona per qualche motivo a causa dell’elenco (copia / incolla) predefinito da qualche parte. Per uno dei miei progetti, la lista di ignora è solo di:

 .gradle .idea libs obj build *.log 

A partire da Android Studio 0.8.4 il file .gitignore viene generato automaticamente all’avvio di un nuovo progetto. Di default contiene:

 .gradle /local.properties /.idea/workspace.xml /.idea/libraries .DS_Store build/ /captures 

Sono d’accordo con questa affermazione, tuttavia modifico questo file per cambiare / build to build / (Questo includerà / build e / app / build) Quindi non finisco con tutti i file in app / build nel mio repository.

Nota anche che se importi un progetto da Eclipse, il file .gitignore non verrà copiato o creato “automaticamente” per te.

Unisco i file Github .gitignore

  • Android.gitignore
  • JetBrains.gitignore
 ### Github Android.gitignore ### # Built application files *.apk *.ap_ # Files for the Dalvik VM *.dex # Java class files *.class # Generated files bin/ gen/ # Gradle files .gradle/ build/ # Local configuration file (sdk path, etc) local.properties # Proguard folder generated by Eclipse proguard/ # Log Files *.log # Android Studio Navigation editor temp files .navigation/ # Android Studio captures folder captures/ ### Github JetBrains.gitignore ### # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio *.iml ## Directory-based project format: .idea/ # if you remove the above rule, at least ignore the following: # User-specific stuff: # .idea/workspace.xml # .idea/tasks.xml # .idea/dictionaries # Sensitive or high-churn files: # .idea/dataSources.ids # .idea/dataSources.xml # .idea/sqlDataSources.xml # .idea/dynamic.xml # .idea/uiDesigner.xml # Gradle: # .idea/gradle.xml # .idea/libraries # Mongo Explorer plugin: # .idea/mongoSettings.xml ## File-based project format: *.ipr *.iws ## Plugin-specific files: # IntelliJ /out/ # mpeltonen/sbt-idea plugin .idea_modules/ # JIRA plugin atlassian-ide-plugin.xml # Crashlytics plugin (for Android Studio and IntelliJ) com_crashlytics_export_strings.xml crashlytics.properties crashlytics-build.properties 

Please read: JetBrains Support: How to manage projects under Version Control Systems

Github maintains useful gitignore items for various kinds of projects. Here is the list of useful gitignore items for android projects.

 # Built application files *.apk *.ap_ # Files for the ART/Dalvik VM *.dex # Java class files *.class # Generated files bin/ gen/ out/ # Gradle files .gradle/ build/ # Local configuration file (sdk path, etc) local.properties # Proguard folder generated by Eclipse proguard/ # Log Files *.log # Android Studio Navigation editor temp files .navigation/ # Android Studio captures folder captures/ # Intellij *.iml .idea/workspace.xml .idea/tasks.xml .idea/gradle.xml .idea/libraries # Keystore files *.jks # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild # Google Services (eg APIs or Firebase) google-services.json # Freeline freeline.py freeline/ freeline_project_description.json 

Android Gitignore in github

Compilation:

 #built application files *.apk *.ap_ # files for the dex VM *.dex # Java class files *.class # generated files bin/ gen/ # Gradle files .gradle/ build/ /*/build/ # Local configuration file (sdk path, etc) local.properties # Proguard folder generated by Eclipse proguard/ # Log Files *.log # Windows thumbnail db Thumbs.db # OSX files .DS_Store # Eclipse project files .classpath .project # Android Studio *.iml .idea #.idea/workspace.xml - remove # and delete .idea if it better suit your needs. .gradle build/ # Intellij project files *.iml *.ipr *.iws .idea/ 

To circumvent the import of all files, where Android Studio ignores the “Ignored Files” list, but still leverage Android Studio VCS, I did the following: This will use the “Ignored Files” list from Android Studio (after import! not during) AND avoid having to use the cumbersome way Tortoise SVN sets the svn:ignore list.

  1. Use the Tortoise SVN repository browser to create a new project folder directly in the repository.
  2. Use Tortoise SVN to checkout the new folder over the top of the folder you want to import. You will get a warning that the local folder is not empty. Ignore the warning. Now you have a versioned top level folder with unversioned content.
  3. Open your project from the local working directory. VCS should now be enabled automatically
  4. Set your file exceptions in File -> Settings -> Version Control -> Ignored Files
  5. Add files to SVN from Android Studio: select ‘App’ in Project Structure -> VCS -> Add to VCS (this will add all files, except “Ignored Files”)
  6. Commit Changes

Going forward, “Ignored Files” will be ignored and you can still manage VCS from Android Studio.

Cheers, -Joost

.gitignore from AndroidRate library

 # Copyright 2017 - 2018 Vorlonsoft LLC # # Licensed under The MIT License (MIT) # Built application files *.ap_ *.apk # Built library files *.aar *.jar # Built native files *.o *.so # Files for the Dalvik/Android Runtime (ART) *.dex *.odex # Java class files *.class # Generated files bin/ gen/ out/ # Gradle files .gradle/ build/ # Local configuration file (sdk/ndk path, etc) local.properties # Windows thumbnail cache Thumbs.db # macOS .DS_Store/ # Log Files *.log # Android Studio .navigation/ captures/ output.json # NDK .externalNativeBuild/ obj/ # IntelliJ ## User-specific stuff .idea/**/tasks.xml .idea/**/workspace.xml .idea/dictionaries ## Sensitive or high-churn files .idea/**/dataSources/ .idea/**/dataSources.ids .idea/**/dataSources.local.xml .idea/**/dynamic.xml .idea/**/sqlDataSources.xml .idea/**/uiDesigner.xml ## Gradle .idea/**/gradle.xml .idea/**/libraries ## VCS .idea/vcs.xml ## Module files *.iml ## File-based project format *.iws 

https://github.com/github/gitignore is awesome collection

Android.gitignore

 # Built application files *.apk *.ap_ # Files for the ART/Dalvik VM *.dex # Java class files *.class # Generated files bin/ gen/ out/ # Gradle files .gradle/ build/ # Local configuration file (sdk path, etc) local.properties # Proguard folder generated by Eclipse proguard/ # Log Files *.log # Android Studio Navigation editor temp files .navigation/ # Android Studio captures folder captures/ # IntelliJ *.iml .idea/workspace.xml .idea/tasks.xml .idea/gradle.xml .idea/assetWizardSettings.xml .idea/dictionaries .idea/libraries .idea/caches # Keystore files # Uncomment the following line if you do not want to check your keystore files in. #*.jks # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild # Google Services (eg APIs or Firebase) google-services.json # Freeline freeline.py freeline/ freeline_project_description.json # fastlane fastlane/report.xml fastlane/Preview.html fastlane/screenshots fastlane/test_output fastlane/readme.md 

This official documentation from JetBrains Support says the following should be included:

 All files under .idea directory except workspace.xml and tasks.xml because they store specific user settings All the *.iml files that can be located in different module directories 

It also gives other recommendations of things to be careful about.

  ### Github Android.gitignore ### # Built application files *.apk *.ap_ # Files for the Dalvik VM *.dex # Java class files *.class # Generated files bin/ gen/ # Gradle files .gradle/ build/ # Local configuration file (sdk path, etc) local.properties # Proguard folder generated by Eclipse proguard/ # Log Files *.log # Android Studio Navigation editor temp files .navigation/ # Android Studio captures folder captures/ ### Github JetBrains.gitignore ### # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio *.iml ## Directory-based project format: .idea/ # if you remove the above rule, at least ignore the following: # User-specific stuff: # .idea/workspace.xml # .idea/tasks.xml # .idea/dictionaries # Sensitive or high-churn files: # .idea/dataSources.ids # .idea/dataSources.xml # .idea/sqlDataSources.xml # .idea/dynamic.xml # .idea/uiDesigner.xml # Gradle: # .idea/gradle.xml # .idea/libraries # Mongo Explorer plugin: # .idea/mongoSettings.xml ## File-based project format: *.ipr *.iws ## Plugin-specific files: # IntelliJ /out/ # mpeltonen/sbt-idea plugin .idea_modules/ # JIRA plugin atlassian-ide-plugin.xml # Crashlytics plugin (for Android Studio and IntelliJ) com_crashlytics_export_strings.xml crashlytics.properties crashlytics-build.properties 

I had problems with ignoring build files, but this seems to work 🙂

 # built application files *.apk *.ap_ # files for the dex VM *.dex # Java class files *.class # generated files bin/ gen/ # Local configuration file (sdk path, etc) local.properties # Eclipse project files .classpath .project # Android Studio .idea/ .gradle /*/local.properties /*/out /*/*/build /*/*/production *.iml *.iws *.ipr *~ *.swp */build */production */local.properties */out