61

我在启动时传递了一个参数:-D DEBUG它允许我在发布应用程序中使用以下内容:

#ifndef DEBUG
    /* Some code I only want to be run when using the release app */
#endif

当我运行时git status,它告诉我添加时更改的文件-D DEBUGMyExampleProject.xcodeproj/xcuserdata/myusername.xcuserdatad/xcschemes/MyExampleProject.xcscheme

应该使用常用的 Xcode .gitignore 文件将其排除。有没有其他方法可以包含这个符合.gitignore且不依赖于我的用户帐户的参数xcuserdata

4

4 回答 4

116

一般来说,xcuserdata 对于个别项目是可以安全忽略的。每个用户都有自己的文件来保存用户状态、打开的文件夹、打开的最后一个文件等等。它确实包含您的计划。如果是第一次打开并且文件不存在,Xcode 会为你创建它。

但是......当您有一个持续构建服务器(如 Hudson 或 Jenkins)时,我们在办公室遇到了这个问题,该服务器从 Git 或 SVN 复制源代码而无需打开它并尝试构建它。如果您忽略此文件,则将没有要构建的方案,否则它将迫使某人打开项目以在第一次自动创建它。

我们通过选中管理方案下的共享框解决了这个问题。这会将方案从您的个人 xcuserdata 下移到一个共享文件夹中,该文件夹可以通过源代码控制提交并由连续构建服务器使用。希望这可以帮助。

于 2012-12-19T14:42:44.457 回答
20

该文件夹仅包含一些临时信息。像 Xcode 的 UI 状态和类似的属性。GitHub 建议排除xcuserdata文件中的.gitignore文件夹。

于 2012-12-19T13:35:14.923 回答
0

是的,删除xcuserdata是安全的。

在 Finder 中打开您的 pproject 文件夹,然后根据需要从 .xcworkspace 或 .xcodeproj 右键单击​​以“显示包内容”。您将看到 2 个文件夹:xcshareddataxcuserdata

删除xcuserdata文件夹,然后尝试打开应用程序。

于 2019-11-21T10:52:16.080 回答
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)。它们是非共享的,因为它们属于用户。仅当您是用户时才会读取这些设置。我认为您无法在您拥有的另一台机器上使用这些设置。我很想知道。

在此处输入图像描述

于 2021-03-27T13:36:13.707 回答