是否可以在Xcode 5中构建iphoneos6.1项目,从而保留Xcode 4.6.3情节提要中视图的行为?

是否可以在Xcode 5中构建iphoneos6.1项目,从而保留Xcode 4.6.3情节提要中视图的行为?,xcode,ios7,Xcode,Ios7,我们的构建服务器最近更新为使用Xcode 5的Xcode构建。我们已经安装了iphoneos6.1,因此我们仍然可以将iPhoneSDK 6.1用于一些尚不支持iOS7的遗留项目。然而,当我们使用xcodebuild使用-sdk iphoneos6.1构建这些项目时,我们仍然会看到UIViewController的内容在导航栏和选项卡栏下面出现问题 有没有办法构建这些使用Xcode 5的Xcode构建、使用Xcode 4.6.3/base sdk iOS 6.1开发的项目,但保留使用Xcode

我们的构建服务器最近更新为使用Xcode 5的Xcode构建。我们已经安装了iphoneos6.1,因此我们仍然可以将iPhoneSDK 6.1用于一些尚不支持iOS7的遗留项目。然而,当我们使用xcodebuild使用-sdk iphoneos6.1构建这些项目时,我们仍然会看到UIViewController的内容在导航栏和选项卡栏下面出现问题

有没有办法构建这些使用Xcode 5的Xcode构建、使用Xcode 4.6.3/base sdk iOS 6.1开发的项目,但保留使用Xcode 4.6.3开发的情节提要中的视图?我查看了ibtool的手册页,但没有看到任何与选择目标SDK相关的选项,也没有看到任何与我上面提到的“扩展边缘”问题相关的选项


请注意,我们没有使用Xcode 5更新情节提要-该项目将继续在Xcode 4.6.3中开发,并且仅在构建服务器克隆项目的git repo并使用Xcode build进行构建时才涉及Xcode 5工具链。

是。在情节提要上,转到Interface Build Document部分,有两个选择项。一个用于构建,一个用于查看。您可以为的生成选择从7.0到4.3的任何内容,也可以选择“7.0及更高版本”或“6.1及更低版本”


虽然这并不完全是您想要的,但您可以将Xcode 4和Xcode 5保持在相同的生成环境中,并通过使用环境变量控制运行哪个
Xcode构建
(请参阅。我们刚刚在一个生成服务器上设置了它。在您的生成定义中,只需设置以下环境变量:

DEVELOPER\u DIR=/Contents/DEVELOPER
对我们来说,结果是:

DEVELOPER\u DIR=/Applications/Xcode-4.app/Contents/DEVELOPER

这将覆盖
xcode select
设置,并允许您使用正确的xcode环境。同样,这取决于生成系统设置环境变量的能力,以及安装两个版本的xcode。您可以在

下载较旧版本的代码。在iOS 7中运行应用程序时是否会发生这种情况?或者在6.1中?在iOS 7中运行应用程序时会发生这种情况。当我们使用Xcode 4.6.3构建时,应用程序在iOS 6或7上运行时会正常工作。当我们使用Xcode 5构建时,应用程序在iOS 6上运行时会正常工作,但当在iOS 7上运行时,视图控制器内容会扩展到顶部/底部栏下。Xcode 5只有iOS 7 SDK。在构建时对于新的SDK,iOS 7将自动使用新的行为,而iOS 6仍将正常运行,因为它不知道其他情况。使用旧的Xcode构建时,将使用旧的SDK,iOS 7假定应用程序尚未更新为使用iOS 7功能,因此会像iOS 6一样显示应用程序。@BergQuester,我将iphoneos6.1 SDK进行了符号链接,以便将在Xcode 5中可用,如下所述:,并选择该SDK作为基本SDK。尽管我选择了iphoneos6.1 SDK作为基本SDK,但您是对的,有些(但不是全部)iOS 7的一个功能出现在已编译的应用程序中。除了在栏下扩展内容外,我还看到了一个半透明的导航栏,但我没有看到导航栏颜色扩展到状态栏,就像我在将基本sdk设置为iOS 7时看到的那样。我个人不相信像那样对Xcode进行黑客攻击,因为苹果没有这样的组合ted。那么,听起来好像Xcode 5在编译时设置了一个标志,导致iOS 7出现这种情况。理想情况下,苹果会包括以前的一两个SDK。作为替代,我更愿意为两个版本的Xcode使用单独的构建服务器,而不是在其中破解旧的SDK。根据您的情况,您甚至可以旧的Xcode运行在构建服务器上的VM中,以避免需要单独的计算机。感谢您的建议。我尝试更改“构建为”和“查看为”值,但它们并没有解决问题-我仍然看到内容在顶部/底部栏下扩展。我想我必须咬紧牙关,开始在Xcode 5中调整情节提要。@Greg了解您的问题。.单击Viewcontroller…并取消选中顶部栏下的“扩展边”。“底部栏下”... etc@TonyMkenu,谢谢,我知道这个选项,但这是针对一个旧项目的,我们正在尝试迁移到运行Xcode 5的新生成服务器,如果可能的话,不需要实际修改该项目。看起来我们需要有两个生成环境,一个用于迁移到Xcode 5的项目,另一个用于我现在不能继续使用Xcode 4.6.3。