如果使用Launch Arguments,使用Git忽略/ xcuserdata /是否安全?

时间:2012-12-19 12:28:20

标签: xcode git

我在启动时传递了一个参数:-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的参数?

4 个答案:

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

enter image description here