Skip to content

Instantly share code, notes, and snippets.

@sendoa
Last active October 18, 2015 14:42
Show Gist options
  • Save sendoa/8952600 to your computer and use it in GitHub Desktop.
Save sendoa/8952600 to your computer and use it in GitHub Desktop.
Sendoa's .gitignore for Xcode projects
# Some ideas taken from https://gist.github.com/adamgit/3786883
# OS X
.DS_Store
*.swp
*.lock
profile
.LSOverride
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# Xcode per-user config
*.mode1
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3
*.pbxuser
*. xcuserstate
xcuserdata/
# Whitelist some per-user settings (the default ones). Some projects need to use these
!default.pbxuser
!default.mode1v3
!default.mode2v3
!default.perspectivev3
# Xcode 4 - Deprecated classes
*.moved-aside
# Xcode 5 - Source Control files
*.xccheckout
# AppCode specific files
.idea/
*.iml
# Build products
DerivedData/
build/
*.o
*.LinkFileList
*.hmap
*.ipa
# Automatic backup files
*~.nib/
*.swp
*~
*.dat
*.dep
# Cocoapods
# Pods
!Podfile.lock
# Carthage
Carthage/Build
# Bundler
!Gemfile.lock
@Lascorbe
Copy link

Yo añadiria:

.xcuserstate
*.xcodeproj/project.xcworkspace/xcuserdata/

project.xcworkspace/
xcuserdata/

El / al final denota folder, no vaya a ser que metas por casualidad un archivo con le mismo nombre, pero bueno, tampoco importa mucho.

Y ademas quitaria los Pods, deberias subirlos al repositorio, siempre puedes hacer un pod install pero nunca sabes si github estara caido o habrá algo roto.

@sendoa
Copy link
Author

sendoa commented Feb 12, 2014

Gracias por lo comentarios Luis. Algunas observaciones:

  • No debería ser *. xcuserstate?
  • El tema Pods lo estoy barajando desde hace tiempo… por el momento me inclino por no meterlos (sí que dejo los .lock) ya que no considero a Git como un sistema de backups, pero como digo, me lo estoy planteando para poder hacer un build&run del proyecto al momento y sin depender de una conexión a Internet.

Gracias!

@rais38
Copy link

rais38 commented Feb 12, 2014

El tema Pods, yo lo tengo añadido en el gitignore pero es cierto lo que comentáis que tenemos una gran dependencia de CocoaPods/Github y si algunos de estos fallan, no podríamos compilar. Por lo que veo una solución mixta la ideal, cada vez que sacas una release, incluirlo en tu repo. Si en algún momento necesitas volver a una versión en concreto, no dependerás de nadie :D

@sendoa
Copy link
Author

sendoa commented Feb 12, 2014

De hecho, es lo que hago ahora :-)

@Lascorbe
Copy link

@sendoa Si, se me fue el * :]

Tema Pods. Veo más facil comitear siempre los pods que acordarte de añadirlos y quitarlos en los commits de release. Esto ayuda a que como bien dices sea un build&run sin depender de nada. Pero imaginate, que haces un proyecto y no lo tocas en 10 meses, formateas y te quedas sin ese proyecto en local, y el tío que mantenia el proyecto quita el pod, o github tiene problemas, o te han jodido internet. Pues una putada.

Yo antes hacia como vosotros, pero los chicos de Cocoapods me dijeron que era mejor de esta manera por las razones que os doy. Da igual la excusa, no vale ni la del espacio (lo que ocupa un pod es insignificante en los sistemas de almacenamiento de hoy en día).

Espero que os haya convencido :]

@sendoa
Copy link
Author

sendoa commented Feb 12, 2014

@Lascorbe sounds good to me ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment