iOS 工程檔案.xcodeproj無法開啟

image.png
Bug回放:
本小猿剛提交了一些圖片,繼續激情的敲程式碼中,然後另一小媛一臉懷笑的出現在背後,“我剛提交了一些圖片,你更新一下”,“好的”,then。。。

納尼?

workspace中主工程檔案GovCn目錄沒了
嚇得我趕緊開啟主GovCn.xcodeproj檔案,結果。。。

驚嚇

GovCn.xcodeproj損壞了
翻譯:專案“GOVCN”損壞,由於解析錯誤無法開啟。檢查專案檔案是否有無效編輯或未解決的原始碼衝突。
暫停Bug
知識點:Xcode的工程檔案是 工程名.xcodeproj,而它其實是個package目錄,通過顯示包內容,可以檢視到它內部主要有project.pbxproj 和 xcuserdata。其中,xcuserdata 一般是跟使用者相關的一些設定,如斷點 記錄等,一般不用放到版本管理中。而project.pbxproj 是工程描述檔案,描述了工程裡的原始碼檔案、schema設定等。它的格式是文字型別的plist(Info.plist是binary plist),裡面是一個一個的object。 ------- 摘自 ofollow,noindex">iOS 開發 xcode中的project.pbxproj--深入剖析

容我冷靜一下
- 冷靜想了一下,應該是因為我倆同時提交了圖片,工程GovCn.xcodeproj 檔案衝突了,然後還是會強制更新,內部配置檔案project.pbxproj 出現了衝突,然後就解析不了了。這時,如果是svn就會強制在project.pbxproj 檔案中給你加上<<<<< .mine ...... ======= ...... >>>>> .r33299 來區分誰誰做的修改,只要把這個檔案用編輯器開啟,把這些<>標記的衝突內容都刪除,然後工程就能正常開啟顯示了。開啟之後,工程裡關於圖片的配置資訊都沒了,但圖片原始檔還存在源目錄下,重新匯入一下就OK了。
修理Bug

好了,開始修理Bug,除了修改project.pbxproj ,我們還可以粗暴的用上一個版本的project.pbxproj直接把它覆蓋掉,太粗暴了O(∩_∩)O

顯示包內容,找到project.pbxproj

刪除衝突標記內容

贊贊.gif