在commit 或 beger 的时候一直会提示userinterfacestate.xcuserstate文件尚未commit.
遇到这个问题首先要确定两件事情:
一.
你是否写了.gitignore文件。Git中有一个.gitignore配置文件,在这个文件中可以设置被忽略的文件,假如你在工程中写了一个小的脚本,只想自己使用而不用提交到远端进行管理,那你就可以在.gitignore文件中进行配置。我们一般只对某一个特定的工程进行一些文件的忽略,所以只需要在工程中的代码目录下添加这个文件即可。在你确定有这个文件并且加入了下面的忽略信息,那就需要清理缓存了。
*.xcuserstate project.xcworkspace xcuserdata UserInterfaceState.xcuserstate project.xcworkspace/ xcuserdata/ UserInterface.xcuserstate
二.
因为(你的项目).xcworkspace/xcuserdata/(你的用户名).xcuserdatad/userinterfacestate.xcuserstate 文件已经出现,那么我们就要清理这个缓存文件才能避免这个文件每次都出现,清理这个缓存,你可以用命令行
git rm --cached [YourProjectName].xcodeproj/project.xcworkspace/xcuserdata/[YourUsername].xcuserdatad/UserInterfaceState.xcuserstate
或者直接找到你的工程目录project.xcworkspace,由于project.xcworkspace是一个包文件,直接显示包内容,找到UserInterfaceState.xcuserstate移到垃圾桶就行了。
然后打开把你的修改,commit,push。修改的过程中,最好把xcode退出,避免你删除UserInterfaceState.xcuserstate之后又会生产,造成忽略失败。
如果你不知道用户名可以用相对路径取到:
1.退出xcdoe, 打开终端(Terminal),进入到你的项目目录下
2.在终端输入如下代码
git rm --cached *.xcuserstate
git commit -m "Removed cached files"
git push
3.下次Xcode commit就不会包括user interface state