git 如果使用启动参数,忽略/xcuserdata/是否安全?

bmvo0sr5  于 2022-12-25  发布在  Git
关注(0)|答案(4)|浏览(279)

我有一个论点在发布时被传递:-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

brc7rcf0

brc7rcf01#

一般来说,对于单个项目,忽略xcuserdata是安全的。每个用户都有自己的文件,其中保存了用户状态、打开的文件夹、最后打开的文件等诸如此类的内容。它确实包含了您的方案。如果是第一次打开而文件不存在,Xcode会为您创建它。
然而...我们在办公室遇到过这个问题,当你有一个持续构建服务器,像哈德逊或Jenkins,从Git或SVN复制源代码而不打开它,并试图构建它。如果你忽略这个文件,将没有方案来构建,或者它会迫使某人打开项目来自动创建它。
我们通过选中管理方案下的共享框来解决这个问题,这会将方案从您的个人xcuserdata下移动到一个共享文件夹中,该文件夹可以通过源代码管理提交,并由持续构建服务器使用。

fzsnzjdm

fzsnzjdm2#

此文件夹仅包含一些临时信息。如Xcode的UI状态和类似属性。It is recommended by GitHub以排除.gitignore文件中的xcuserdata文件夹。

v2g6jxz6

v2g6jxz63#

是,删除xcuserdata是安全的。
在Finder中打开你的pproject文件夹,然后右键单击.xcworkspace或.xcodeproj中的“Show package contents”。你会看到2个文件夹:例外共享数据例外客户数据
删除xcuserdata文件夹,然后尝试打开应用程序。

zujrkrfu

zujrkrfu4#

没有直接回答这个问题的细节,但它是安全的,因为它得到了您的用户名,没有其他开发人员在您的项目将使用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的建议不同,Github的建议只是xcuserdata
xcuserdata中的文件是非共享的方案数据和UI配置(例如UserInterfaceState.xcuserstate)。它们是非共享的,因为它们属于一个用户。这些设置只有当你是用户时才能读取。我不认为你有办法在你拥有的另一台机器上使用这些设置。我很想知道。

相关问题