在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