Xcode项目中哪些文件应该存储在版本控制中?
Xcode项目中哪些文件应该存储在版本控制中?
我对Xcode还不熟悉,刚刚发现它在项目目录中存储了一堆用户信息和其他东西,我不需要在版本控制中保存,也不想放到Github上。一个Xcode项目大致是这样的:\n 1 AppName/\n 2 ├── AppName\n 3 │ ├── Base.lproj\n 4 │ │ ├── LaunchScreen.xib\n 5 │ │ └── Main.storyboard\n 6 │ ├── Images.xcassets\n 7 │ │ └── AppIcon.appiconset\n 8 │ │ └── Contents.json\n 9 │ ├── AppDelegate.swift\n10 │ ├── Info.plist\n11 │ └── ViewController.swift\n12 ├── AppName.xcodeproj\n13 │ ├── project.xcworkspace\n14 │ │ ├── xcuserdata\n15 │ │ │ └── user1.xcuserdatad\n16 │ │ │ └── UserInterfaceState.xcuserstate\n17 │ │ └── contents.xcworkspacedata\n18 │ ├── xcuserdata\n19 │ │ └── user1.xcuserdatad\n20 │ │ └── xcschemes\n21 │ │ ├── AppName.xcscheme\n22 │ │ └── xcschememanagement.plist\n23 │ └── project.pbxproj\n24 └── AppNameTests\n25 ├── AppNameTests.swift\n26 └── Info.plist\n
\n我倾向于只提交AppName/
和AppNameTests/
目录,而排除AppName.xcodeproj/
目录。这么做有什么推荐的方法吗?
什么文件应该存储在版本控制中的Xcode项目中?
“推荐的方法”实际上取决于你想要对项目做什么。通常有三种选择:
- 仅提交那些构建项目所必需的文件。
- 添加反映开发自定义的文件(例如存储编辑器中当前可见文件名称的项目文件)。
- 生成的文件,以便完整地快照项目状态。
对于最后一种情况,你可能会遇到时间戳的问题(虽然可以告诉Git了解提交时间--参见“使用原始创建/修改时间戳检出旧文件”--但很少有人这样做)。如果没有一个检索文件使用它们原始时间戳的系统,每次提交都需要重新编译一组文件。
即使保存自定义文件也可能会出现问题,如果你将文件移动到文件系统的另一个部分(或者尝试与其他人共享文件)。
所以...使用.gitignore来过滤掉不需要构建的文件。但是要检查是否可以使用新的检出成功构建。
什么文件应该存储在版本控制中的Xcode项目中?
当使用版本控制系统(如Git)管理Xcode项目时,需要确定哪些文件应该存储在版本控制中。这是因为Xcode项目中存在许多自动生成的文件和文件夹,这些文件和文件夹不应该被包含在版本控制中,因为它们在不同的开发环境中可能有所不同。
为了解决这个问题,一个更好的做法是创建一个.gitignore文件。这个文件告诉Git哪些文件应该被忽略,不包含在版本控制中。GitHub上有一个名为"Xcode.gitignore"的仓库,可以作为一个起点,它包含了应该被忽略的Xcode项目文件的列表。你可以在这个链接中找到这个文件:https://github.com/github/gitignore/blob/master/Global/Xcode.gitignore。
确保从这个文件开始,这样文件才会被正确地忽略。如果你没有从这个文件开始,可能会导致一些文件已经被添加到版本控制中,你需要手动将它们移除。
通过使用.gitignore文件,可以避免将不必要的文件包含在版本控制中,从而减少仓库的大小和不必要的冲突。这样,开发团队在协作开发时就可以更好地管理项目,并减少不必要的冲突和问题。
所以,当管理Xcode项目时,确保使用.gitignore文件来确定哪些文件应该存储在版本控制中,以便更好地管理项目并避免不必要的问题。
在Xcode项目中,应该将哪些文件存储在版本控制中?
问题的原因是,为了有效地使用版本控制系统(如GitHub),我们需要了解应该将哪些文件存储在版本控制中,以及哪些文件不应该存储。
解决方法是使用.gitignore
文件来指定不想存储在GitHub中的文件。可以通过以下链接了解如何创建.gitignore
文件:创建.gitignore
文件,以及在.gitignore
文件中应该包含哪些内容:.gitignore
文件的内容。
以下是.gitignore
文件的示例内容:
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## Build generated
build/
DerivedData/
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/
## Other
*.moved-aside
*.xccheckout
*.xcuserstate
## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM
*.swiftmodule
*.xcframework
通过使用上述提及的.gitignore
文件,我们可以指定不希望存储在版本控制中的文件,从而更好地管理Xcode项目。