当我在 Xcode 9.2 中打开 Xcode 9.3 的代码时,会弹出“加载项目失败,不兼容的项目版本”提示。

35
我在 Xcode 9.3 中创建了一个项目,但是当我在 Xcode 9.2 中打开同一项目时,它显示“不兼容的项目版本”。 - 我更改了部署目标版本
它要求使用团队账户登录才能在 Xcode 9.3 中运行该项目。 如果没有签入,则会显示错误并且无法部署。
5个回答

77

如果您能打开项目

您可以简单地更改项目格式(如图像)

在 Xcode 中点击您的项目文件并进行更改

进入图像描述

如果您不能正常打开项目(projectName.xcodeproj)

控制点击项目文件,选择显示包内容,然后打开您的project.pbxproj文件并对以下内容进行更改:

compatibilityVersion
objectVersion

Xcode 10.0版本

compatibilityVersion: "Xcode 10.0"
objectVersion :51

对于 Xcode 9.3 版本:

compatibilityVersion: "Xcode 9.3"
objectVersion :50

Xcode 8.0-9.2:

compatibilityVersion: "Xcode 8.0"
objectVersion: 48

您可以通过右键单击项目文件夹中的.xcodeproj文件,然后选择显示包内容来找到project.pbxproj文件。


3
我一直陷在这个问题里,就像……该死。这个答案真是救命稻草,我的意思是苹果应该整顿自己的系统。认真地说,你难道要建立一个软件,然后当你推出新的更新时,由新版本创建的文件不能在旧版本中打开吗.. ?? o.O - Yash Bedi
1
很好的答案,在Xcode 13中也能正常工作... - Naresh
1
Xcode 15 语法: "objectVersion = 51" - Eran Talmor
尽管 compatibilityVersion 是正确的,但 objectVersion 没有降级。将其更改为建议的值使我能够在旧版本的 XCode 中打开我的项目。 - JoeGalind

26

我编辑了上面Datasun的评论,包括正确的信息,但这里有其他Xcode版本的信息。您需要同时更改compatibilityVersion和objectVersion。

在project.pbx文件中,您需要进行两个更改:

  1. compatibilityVersion
  2. objectVersion

Xcode 9.3及以上版本:

  • compatibilityVersion为“Xcode 9.3”
  • objectVersion为50

Xcode 8.0-9.2版本:

  • compatibilityVersion为“Xcode 8.0”
  • objectVersion为48

Xcode 6.3-7.3.1版本:

  • compatibilityVersion为“Xcode 6.3”
  • objectVersion为47

16

更改项目格式是正确的做法。但这需要你能够打开该项目,而这并不是现实情况。因此,您可以手动编辑 project.pbxproj(必须打开*.xcodeproj才能看到此文件),并查找 compatibilityVersion:

compatibilityVersion = "Xcode 9.3";

然后您可以将所需版本设置为较低版本。在这种情况下,它应该是“Xcode 9.2”,这也要求您将“objectVersion = 50”设置为48。这个值直接关联到Xcode项目格式。

重要提示:进行此步骤后,您应该能够打开Xcode并且从Xcode中再次更改项目格式,以确保更新任何缺失的字段。


1
我编辑了Datasun上面的评论,以包含正确的信息。 兼容版本需要是8.0(选项仅为屏幕截图中显示的内容),但您还必须更改objectVersion。 下面我发布了完整的配对集,供将来参考。 - Abbey Jackson
1
谢谢@AbbeyJackson,我已经更新了答案。确实需要对象版本。 - Nusatad

2

对于一些在查找compatibilityVersion和objectVersion时遇到问题的人,请按照以下步骤进行:

1)compatibilityVersion:点击右上角的.xcodeproj项目(有两个图标),点击第一个Identity and type。并更改项目格式。

2). objectVersion:右键选择.xcodeproj文件,选择显示包内容,现在用TextEdit打开.pbx文件,并将50替换为48(或其他数字)。

参考:https://github.com/pwn20wndstuff/noncereboot1131UI/issues/2


1
  • 右键选择.xcodeproj文件,选择显示包内容
  • 现在使用TextEdit / VSCode打开.pbx文件
  • compatibilityVersion = "Xcode 9.3"替换为compatibilityVersion = "Xcode 9.2",并将objectVersion更改为50。objectVersion: 50

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接