我在启动时传递了一个参数:-D DEBUG
,它允许我在我的发布应用中使用以下内容:
#ifndef DEBUG
/* Some code I only want to be run when using the release app */
#endif
当我运行git status
时,它会向我显示添加-D DEBUG
时文件已更改MyExampleProject.xcodeproj/xcuserdata/myusername.xcuserdatad/xcschemes/MyExampleProject.xcscheme
应使用常用的Xcode .gitignore file排除哪个。是否有其他方法可以包含符合.gitignore
且不依赖于我的用户帐户xcuserdata
的参数?
答案 0 :(得分:91)
通常,xcuserdata对于单个项目是安全的。每个用户都有自己的文件来保存用户,打开文件夹,打开最后一个文件,这类东西。它确实包含您的计划。如果它是第一次打开并且文件不存在,Xcode将为您创建它。
然而......当你有一个像Hudson或Jenkins这样的连续构建服务器时,我们已经在办公室遇到了这个问题,它从Git或SVN复制源代码而不打开它并尝试构建它。如果您忽略此文件,则不会构建任何方案,或者它会强制某人打开项目以便第一次自动创建它。
我们通过检查管理方案下的共享框解决了这个问题。这会将方案从您单独的xcuserdata下移到一个共享文件夹中,该文件夹可以通过源代码控制提交并由连续构建服务器使用。希望这会有所帮助。
答案 1 :(得分:15)
此文件夹只包含一些临时信息。像Xcode的UI状态和类似的属性。 It is recommended by GitHub要排除xcuserdata
文件中的.gitignore
文件夹。
答案 2 :(得分:0)
是可以安全删除 xcuserdata 打开项目文件夹,显示.xcworkspace或.xcodeproj中的软件包内容。您将看到2个文件夹 xcshareddata 和 xcuserdata ,请删除 xcuserdata 文件夹尝试打开应用程序< / p>
答案 3 :(得分:0)
没有直接详细回答问题,但它是安全的,因为它有您的用户名,您项目中的其他开发人员不会使用 your_username.xcuserdatad
。
我发现 Xcode(至少在 2021 年)将 xcuserdata
放在至少 3 个位置:
> find . -name "*xcuserdata"
./.swiftpm/xcode/package.xcworkspace/xcuserdata
./.swiftpm/xcode/xcuserdata
./project_name.xcodeproj/xcuserdata
./project_name.xcodeproj/project.xcworkspace/xcuserdata
所以最简单的做法是将 **xcuserdata
添加到 .gitignore。这与 Github 的建议不同,后者只是 xcuserdata
。
xcuserdata 中的文件是非共享方案数据和 UI 配置(例如 UserInterfaceState.xcuserstate
)。它们是非共享的,因为它们属于用户。只有当您是用户时才会读取这些设置。我认为您无法在您拥有的另一台机器上使用这些设置。我很想知道。