project.pbxproj
就像json。但是因为我使用了最新的Xcode(7.3.1),所以它变成了plist。这是project.pbxproj
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>archiveVersion</key>
<string>1</string>
<key>classes</key>
<dict/>
<key>objectVersion</key>
<string>46</string>
<key>objects</key>
<dict>
<key>0047E8048E5EE8D208C0B009261D5816</key>
<dict>
<key>fileRef</key>
<string>A1C5C2AA97A78115584DFC22517232F2</string>
<key>isa</key>
<string>PBXBuildFile</string>
</dict>
<key>008246B8B3F0ED1F2BCDAC8B0BF9CB2F</key>
问题是我无法提交我的项目。我收到此错误:
文件&#39; project.pbxproj&#39;被打破。找不到PBXProject名称。
我使用Xunique避免冲突,也许这会有所帮助。请告诉我如何处理这个问题。非常感谢!
答案 0 :(得分:6)
@Lumialxk
我昨天发生了类似的事情。类似的是,我的project.pbxproj
文件是plist格式,不同之处在于我没有得到File 'project.pbxproj' is broken
消息。相反,这个问题通过合并冲突浮出水面。冲突在project.pbxproj
文件中的位置。有一个冲突,它是文件的全部内容。换句话说,该文件有两个版本。一个在我的新分支上,它是plist格式。还有一个在我们的基础分支上,它采用类似JSON的普通格式。无论哪种方式,它听起来都像你看到的一样。
重要的是要注意两个分支预合并使用Xcode。 Xcode似乎没有plist格式化project.pbxproj
文件的问题。
我通过执行git reset --hard HEAD
来抛弃我的尝试合并解决了这个问题,这让我回到了一个我有一个plist project.pbxproj
文件的分支,我可以构建和运行问题。然后我选择了一个随机构建设置(代码签名),更改了它的值,然后将其更改回来(即我只是&#34;触摸&#34;它强制Xcode修改它)。然后我建立了这个项目。然后在文本编辑器中重新打开project.pbxproj
文件。感动&#34;触及&#34;它以正常格式返回的文件,不再是plist格式。
从那里开始一帆风顺。
由于我的同事提出建议&#34;触摸&#34;做法。
我不确定导致这个问题的原因。以下是有关我的设置的一些详细信息:
我正在运行Xcode 7.3(所以我不认为它与7.3.1有任何关系)。我最近从Cocoapods 0.39.0升级到1.0。我认为这是罪魁祸首。我遇到了使用1.0构建一些pod的问题,我通过强制使用0.39.0来解决这个问题:
pod _0.39.0_ install
pod _0.39.0_ update
希望这有帮助!
答案 1 :(得分:2)
更新:还在xUnique README file
中添加了此注释我是xUnique的作者:)
解决方案非常简单,您无需降级Cocoacpods。只需安装xcproj:
brew install xcproj
Convert default ASCII pbxproj file to XML format is done by Cocoapods:
每次CocoaPods创建Pods.xcodeproj项目(运行时) pod更新)或改变你的应用程序xcodeproj项目(在第一个 当你安装pod时,CocoaPods使用了 XML PLIST格式,而Xcode通常生成其xcodeproj文件
由于CocoaPods为0.24.0(参见CHANGELOG.md,CocoaPods会自动转换生成的xcodeproj) 如果xcproj在PATH中可用,则将文件转换为ASCII格式。