ProgramingTip

Xcode 프로젝트에 대한 Git 무시 파일

bestdevel 2020. 9. 28. 09:39
반응형

Xcode 프로젝트에 대한 Git 무시 파일


Xcode 와 함께 Git.gitignore사용할 때 어떤 파일을 포함 해야합니까?


나는 이전에 가장 많이 뽑은 답변을 사용했지만 약간의 정리가 필요에 여기에서 Xcode 4에 대해 다시 작성하여 몇 가지 개선 사항을 적용했습니다.

이 목록에있는 모든 파일을 조사 했지만 일부는 Apple의 공식 Xcode 문서에 존재하지 않았습니다. Apple 메일 링리스트에 가야했습니다.

Apple은 문서화되지 않은 파일을 계속 추가하여 라이브 프로젝트를 손상시킬 수 있습니다. 이 IMHO는 받아 들일 수 있습니다. 이제 매번 버그를 기록하기 시작했습니다. 나는 그들이 상관하지 않는다는 것을 알고 있다고 할 수있는 것 중 하나가 개발자를 더 공정하게 대하는 것입니다.


커스터마이징이 필요한 경우 포크 할 수있는 요점은 다음과 다양합니다. https://gist.github.com/3786883


#########################
# .gitignore file for Xcode4 and Xcode5 Source projects
#
# Apple bugs, waiting for Apple to fix/respond:
#
#    15564624 - what does the xccheckout file in Xcode5 do? Where's the documentation?
#
# Version 2.6
# For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
#
# 2015 updates:
# - Fixed typo in "xccheckout" line - thanks to @lyck for pointing it out!
# - Fixed the .idea optional ignore. Thanks to @hashier for pointing this out
# - Finally added "xccheckout" to the ignore. Apple still refuses to answer support requests about this, but in practice it seems you should ignore it.
# - minor tweaks from Jona and Coeur (slightly more precise xc* filtering/names)
# 2014 updates:
# - appended non-standard items DISABLED by default (uncomment if you use those tools)
# - removed the edit that an SO.com moderator made without bothering to ask me
# - researched CocoaPods .lock more carefully, thanks to Gokhan Celiker
# 2013 updates:
# - fixed the broken "save personal Schemes"
# - added line-by-line explanations for EVERYTHING (some were missing)
#
# NB: if you are storing "built" products, this WILL NOT WORK,
# and you should use a different .gitignore (or none at all)
# This file is for SOURCE projects, where there are many extra
# files that we want to exclude
#
#########################

#####
# OS X temporary files that should never be committed
#
# c.f. http://www.westwind.com/reference/os-x/invisibles.html

.DS_Store

# c.f. http://www.westwind.com/reference/os-x/invisibles.html

.Trashes

# c.f. http://www.westwind.com/reference/os-x/invisibles.html

*.swp

#
# *.lock - this is used and abused by many editors for many different things.
#    For the main ones I use (e.g. Eclipse), it should be excluded
#    from source-control, but YMMV.
#   (lock files are usually local-only file-synchronization on the local FS that should NOT go in git)
# c.f. the "OPTIONAL" section at bottom though, for tool-specific variations!
#
# In particular, if you're using CocoaPods, you'll want to comment-out this line:
*.lock


#
# profile - REMOVED temporarily (on double-checking, I can't find it in OS X docs?)
#profile


####
# Xcode temporary files that should never be committed
# 
# NB: NIB/XIB files still exist even on Storyboard projects, so we want this...

*~.nib


####
# Xcode build files -
#
# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "DerivedData"

DerivedData/

# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "build"

build/


#####
# Xcode private settings (window sizes, bookmarks, breakpoints, custom executables, smart groups)
#
# This is complicated:
#
# SOMETIMES you need to put this file in version control.
# Apple designed it poorly - if you use "custom executables", they are
#  saved in this file.
# 99% of projects do NOT use those, so they do NOT want to version control this file.
#  ..but if you're in the 1%, comment out the line "*.pbxuser"

# .pbxuser: http://lists.apple.com/archives/xcode-users/2004/Jan/msg00193.html

*.pbxuser

# .mode1v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html

*.mode1v3

# .mode2v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html

*.mode2v3

# .perspectivev3: http://stackoverflow.com/questions/5223297/xcode-projects-what-is-a-perspectivev3-file

*.perspectivev3

#    NB: also, whitelist the default ones, some projects need to use these
!default.pbxuser
!default.mode1v3
!default.mode2v3
!default.perspectivev3


####
# Xcode 4 - semi-personal settings
#
# Apple Shared data that Apple put in the wrong folder
# c.f. http://stackoverflow.com/a/19260712/153422
#     FROM ANSWER: Apple says "don't ignore it"
#     FROM COMMENTS: Apple is wrong; Apple code is too buggy to trust; there are no known negative side-effects to ignoring Apple's unofficial advice and instead doing the thing that actively fixes bugs in Xcode
# Up to you, but ... current advice: ignore it.
*.xccheckout

#
#
# OPTION 1: ---------------------------------
#     throw away ALL personal settings (including custom schemes!
#     - unless they are "shared")
# As per build/ and DerivedData/, this ought to have a trailing slash
#
# NB: this is exclusive with OPTION 2 below
xcuserdata/

# OPTION 2: ---------------------------------
#     get rid of ALL personal settings, but KEEP SOME OF THEM
#     - NB: you must manually uncomment the bits you want to keep
#
# NB: this *requires* git v1.8.2 or above; you may need to upgrade to latest OS X,
#    or manually install git over the top of the OS X version
# NB: this is exclusive with OPTION 1 above
#
#xcuserdata/**/*

#     (requires option 2 above): Personal Schemes
#
#!xcuserdata/**/xcschemes/*

####
# Xcode 4 workspaces - more detailed
#
# Workspaces are important! They are a core feature of Xcode - don't exclude them :)
#
# Workspace layout is quite spammy. For reference:
#
# /(root)/
#   /(project-name).xcodeproj/
#     project.pbxproj
#     /project.xcworkspace/
#       contents.xcworkspacedata
#       /xcuserdata/
#         /(your name)/xcuserdatad/
#           UserInterfaceState.xcuserstate
#     /xcshareddata/
#       /xcschemes/
#         (shared scheme name).xcscheme
#     /xcuserdata/
#       /(your name)/xcuserdatad/
#         (private scheme).xcscheme
#         xcschememanagement.plist
#
#

####
# Xcode 4 - Deprecated classes
#
# Allegedly, if you manually "deprecate" your classes, they get moved here.
#
# We're using source-control, so this is a "feature" that we do not want!

*.moved-aside

####
# OPTIONAL: Some well-known tools that people use side-by-side with Xcode / iOS development
#
# NB: I'd rather not include these here, but gitignore's design is weak and doesn't allow
#     modular gitignore: you have to put EVERYTHING in one file.
#
# COCOAPODS:
#
# c.f. http://guides.cocoapods.org/using/using-cocoapods.html#what-is-a-podfilelock
# c.f. http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
#!Podfile.lock
#
# RUBY:
#
# c.f. http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/
#
#!Gemfile.lock
#
# IDEA:
#
# c.f. https://www.jetbrains.com/objc/help/managing-projects-under-version-control.html?search=workspace.xml
# 
#.idea/workspace.xml
#
# TEXTMATE:
#
# -- UNVERIFIED: c.f. http://stackoverflow.com/a/50283/153422
#
#tm_build_errors

####
# UNKNOWN: recommended by others, but I can't discover what these files are
#

Mercurial 에 대한 이 가이드를 기반으로 내 .gitignore에는 다음이 포함됩니다.

.DS_Store
*.swp
*~.nib

build/

*.pbxuser
*.perspective
*.perspectivev3

또한 다음을 포함하도록 선택했습니다.

*.mode1v3
*.mode2v3

이 Apple 메일 링리스트 게시물 에 따르면 "사용자 별 프로젝트 설정"입니다.

그리고 Xcode 4의 경우 :

xcuserdata

'빌드'디렉토리 제외 관련-

내가하는 것처럼 소스와 다른 디렉토리에 빌드 파일을 배치하면 걱정할 폴더가 트리에 없습니다.

이는 또한 코드 공유, 과도한 백업 방지 및 다른 Xcode 프로젝트에 대한 진술이있는 경우에도 더 간단하게 만듭니다 (빌드가 서로 디렉토리에 있어야 함).

Github gist https://gist.github.com/708713 에서 최신 사본을 찾을 수 있습니다.

내 현재 .gitignore 파일은

# Mac OS X
*.DS_Store

# Xcode
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
*.xcuserstate
project.xcworkspace/
xcuserdata/

# Generated files
*.o
*.pyc


#Python modules
MANIFEST
dist/
build/

# Backup files
*~.nib

Xcode 4의 경우 다음을 추가합니다.

YourProjectName.xcodeproj/xcuserdata/*
YourProjectName.xcodeproj/project.xcworkspace/xcuserdata/*

Github에서 만든 Gist에 다음 제안을 포함했습니다. http://gist.github.com/137348

자유롭게 포크하고 더 좋게 만드십시오.


GitHub의 사람들은 Xcode 프로젝트에 대한 철저하고 문서화 된 .gitignore 파일을 가지고 있습니다.

스위프트 : https://github.com/github/gitignore/blob/master/Swift.gitignore

Objective-C : https://github.com/github/gitignore/blob/master/Objective-C.gitignore


Objective-C 및 Swift는 gitignore.io확인해야합니다 .

.gitignore내가 사용 중인 파일 은 다음과 가변 .

# Xcode
.DS_Store
*/build/*
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
profile
*.moved-aside
DerivedData
.idea/
*.hmap
*.xccheckout
*.xcworkspace
!default.xcworkspace

#CocoaPods
Pods

AppCode와 XCode를 모두 사용하고 있습니다. 따라서 .idea/무시해야합니다.

주인 아담의 .gitignore

####
# AppCode
.idea/

다음은 Xcode를 사용하여 .gitignore 및 .gitattributes 파일을 자동으로 생성하기 위해 만든 펼쳐집니다. 다른 사람들의 물건과 함께 해킹했습니다. 즐기세요!

Xcode-Git- 사용자 펼쳐보기

보증이 없습니다 ... 이건 거의 안 돼-그러니 자신의 위험에 사용하세요


내 것은 .bzrignore이지만 같은 생각입니다 :)

.DS_Store
*.mode1v3
*.pbxuser
*.perspectivev3
*.tm_build_errors

tm_build_errors는 TextMate사용 하여 프로젝트를 빌드 할 때 입니다. Hagelin만큼 많지는 않지만 tm_build_errors 라인에 게시 할 가치가 있다고 생각했습니다.


추가 .gitignore 파일 에 대한을

Mac OS X + Xcode + Swift

다음은 Swift 프로젝트에 .gitignore 파일을 추가 한 방법입니다.

  1. Xcode에서 프로젝트를 선택하고 마우스 오른쪽 버튼을 클릭 → 새 그룹 → 이름을 " Git "
  2. Git 폴더를 선택하고 오른쪽 클릭 → 새 파일 추가
  3. iOS 탭 내에서 기타 선택 빈 파일

여기에 이미지 설명 입력

  1. 여기에 파일 이름을 지정하십시오. " .gitignore "

여기에 이미지 설명 입력

  1. 파일 이름 및 유형 확인

여기에 이미지 설명 입력

결과 구조는 다음과 가변적입니다.

여기에 이미지 설명 입력

  1. 파일을 아래 코드를 지나서

# file

#########################################################################
#                                                                       #
#       Title         - .gitignore file                                 #
#       For           - Mac OS X, Xcode 7 and Swift Source projects     #
#       Updated by    - Ramdhan Choudhary                               #
#       Updated on    - 13 - November - 2015                            #
#                                                                       #
#########################################################################

########### Xcode ###########
# Xcode temporary files that should never be committed

## Build generated
build/
DerivedData

# NB: NIB/XIB files still exist even on Storyboard projects, so we want this
*~.nib
*.swp

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata

## Other
*.xccheckout
*.moved-aside
*.xcuserstate
*.xcscmblueprint
*.xcscheme

########### Mac OS X ###########
# Mac OS X temporary files that should never be committed

.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# 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

########## Objective-C/Swift specific ##########
*.hmap
*.ipa

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build

# fastlane
#
# It is recommended to not store the screenshots in the Git repository. Instead, use fastlane to re-generate the

fastlane/report.xml
fastlane/screenshots

글쎄, 아담 덕분에 . 그의 항목은 저에게 많은 도움이 여전히 .gitignore 파일을 원하기 때문에 몇 가지 더 추가해야했습니다.

Mac OS X + Xcode + Swift

참조 : 이것이것


Xcode 5의 경우 다음을 추가합니다.

####
# Xcode 5 - VCS metadata
#
*.xccheckout

에서 Berik의 대답


나는 추가했다 :

xcuserstate
xcsettings

내 프로젝트의 루트에 내 .gitignore 파일을 배치했습니다.

커밋하고 밀고 난 후. 그런 다음 실행했습니다.

git rm --cached UserInterfaceState.xcuserstate WorkspaceSettings.xcsettings

아래 폴더에 묻혀 있습니다.

<my_project_name>/<my_project_name>.xcodeproj/project.xcworkspace/xcuserdata/<my_user_name>.xcuserdatad/

그런 다음 git commit을 실행하고 다시 푸시합니다.


gitignore.io에서 생성 된 다음 .gitignore 파일을 사용합니다.

### Xcode ###
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.xcuserstate


### Objective-C ###
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
Pods/

무엇을

gitignore.io

언어를 선택하면 파일이 제공됩니다.


다음 .gitignore은 GitHub가 새 Xcode 리포지토리에 기본적으로 사용하는 것입니다.

https://github.com/github/gitignore/blob/master/Objective-C.gitignore

주어진 시간에 합리적으로 의미 할 수 있습니다.


대부분의 답변은 Xcode 4-5 시대의 것입니다. 현대적인 스타일의 무시 파일을 권장합니다.

# Xcode Project
**/*.xcodeproj/xcuserdata/
**/*.xcworkspace/xcuserdata/
**/*.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
**/*.xcworkspace/xcshareddata/*.xccheckout
**/*.xcworkspace/xcshareddata/*.xcscmblueprint
.idea/

# Xcode Injection
IOSInjectionProject/
OSXInjectionProject/

# Build
build/
DerivedData

# CocoaPods
Pods/

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/sign&cert

# CSV
*.orig
.svn

# Other
*~
.DS_Store
*.swp
*.save
._*
*.bak

https://github.com/BB9z/iOS-Project-Template/blob/master/.gitignore 에서 업데이트 유지


.gitignore 및 .gitattribte를 추가하지만 * .pbxproj 파일이 손상 될 수 있음을 발견했습니다. 그래서 우리는 간단한 계획을 가지고 있습니다.

사무실에서 코드를 작성하는 모든 사람은이 파일의 변경 사항을 무시합니다. 커밋에서 소스에 추가 된 파일을 언급합니다. 그런 다음 서버로 푸시합니다. 통합 관리자는 커밋 세부 정보를 가져 오기보고 파일을 리소스에 추가합니다.

원격을 업데이트하면 항상 모든 작업을 수행 할 수 있습니다. 누락 된 항목이있는 경우 항목을 추가하고 다시 당길 제안합니다.

이 문제없이 우리를 위해 해결되었습니다.


를 사용하여 .gitignore파일 을 생성하는 것이 좋습니다 .

iOS 프로젝트의 경우 다음 명령을 실행하십시오.

$ joe g osx,xcode > .gitignore

다음을 생성합니다 .gitignore.

.DS_Store
.AppleDouble
.LSOverride

Icon
._*

.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns

.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

build/
DerivedData

*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata

*.xccheckout
*.moved-aside
*.xcuserstate

Xcode 프로젝트를위한 standerd .gitignore 파일의 구조>

.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
!default.xcworkspace
xcuserdata
profile
*.moved-aside
DerivedData
.idea/

참고 URL : https://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects

반응형