问题 如何确定用于从代码开发的xcode


我有iOS应用程序源代码我想确定使用哪个版本的xcode来开发项目。

project.pbxproj 当我去节 /* Begin PBXProject section */ 它说

compatibilityVersion = "Xcode 3.2";

所以我猜它是在一些4.x版本上开发而不是在xcode 5上。请建议。


4340
2018-01-20 05:10


起源

Nsstring * str = [[[NSBundle mainBundle] infoDictionary] objectForKey:@“CFBundleVersion”] - Kirit Modi
你想做什么?知道project.pbxproj的Xcode版本能得到什么? - user1118321
@ user1118321在苹果公司关于feb 1的公告之后,它已经成为验证供应商不会在最后时刻搞砸的任务。我想知道用于制作项目的xcode版本。 - amar
@amar在这种情况下,在xcode 5中打开项目,转换它,使用iOS7 sdk作为基础sdk-kit并删除所有错误 - staticVoidMan
我认为这是个好问题。例如,当自动构建多个应用程序时,有必要知道需要使用哪些xcode版本来构建特定的应用程序。当然,可以添加包含xcode版本的文件并从那里读取它,但使用由xcode自动生成的内容会更有用。据我所知,compatibilityVersion不能用于此。 - diidu


答案:


如果您有与项目关联的.xcarchive或.ipa文件,则可以确定用于构建它的Xcode版本。 Xcode在构建时为info.plist添加了一个“DTXcode”键。

因此,使用Finder打开.xcarchive文件或将.ipa文件重命名为.zip,然后使用Finder打开它。
导航以查找应用程序包文件 - 即具有.app扩展名的文件。右键单击并“显示包内容”。找到info.plist并使用文本编辑器打开它。

你会看到类似的东西:

<key>DTXcode</key>
<string>0611</string>

在这种情况下,611是Xcode 6.1.1。

或者,如果您有权访问iTunesConnect,则可以查看已上载的二进制文件的详细信息。查找“构建详细信息”并找到名为“构建SDK”的密钥。它将是一个字母数字字符串,例如12B411。

由于Apple通常只将一个版本的SDK与Xcode捆绑在一起,因此您可以使用此站点查找与SDK对应的Xcode版本: https://en.wikipedia.org/wiki/IOS_SDK

在12B411的情况下,我看到的是iOS 8.1 final,它与Xcode 6.1 build 6A1052d捆绑在一起。


9
2017-10-10 19:13





如果您打开project.pbxproj文件并搜索 CreatedOnToolsVersion,它看起来会在这里给你你想要的东西,至少对于新版本的Xcode。

我看到它在我的一个项目中设置为7.3.1,在另一个项目中设置为8.3.2,使用该版本的Xcode创建。


7
2018-06-12 07:36



这是真正的答案。除了.xcodeproj文件之外,这不涉及任何其他内容 - gog
我不能给他们两个正确的答案。这个答案适用于你有代码的所有情况。 +1。但有一点CreatedOnToolsVersion显示用于创建不是最后一个使用的xcode.Mine显示7。***其中当前为9.0我使用 - amar