Xcode 5有一个首选项窗格,允许一个人下载iPhone 6.1模拟器,但我找不到一个地方,它允许下载iOS 6 SDK,因此不可能将活动SDK设置为iOS 6时,用Xcode 5开发。是否存在允许Xcode 5安装iOS 6 SDK的解决方案?

编辑:

既然Xcode 5已经普遍可用,并且允许你下载以前版本的SDK,那么变通方法应该不再是必要的了。


当前回答

将6.1 SDK链接到Xcode 5是第一步。然而,这仍然不能解决在iOS 7上运行的新UI元素,视图控制器是全尺寸的等问题。

正如在这个回答中所描述的,在iOS 7上还需要将UI切换到遗留模式:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"UIUseLegacyUI"];
[[NSUserDefaults standardUserDefaults] synchronize];

注意:这是一个未记录的键,不建议应用程序商店构建!

此外,根据我在设备上测试的经验,我发现它只能在我第二次启动应用时运行,即使我在应用启动的早期运行了代码,在+[AppDelegate initialize]中。此外,它与使用Xcode 4.6构建的版本也有细微的区别。例如,透明导航条的行为不同(导致视图是全尺寸的)。

然而,由于Xcode 4.6.3在Mavericks上崩溃(至少对我来说,见rdar://15318883),这至少是一个继续使用Xcode 5进行调试的解决方案。

其他回答

我目前已经安装了Xcode 4.6.3和5.0。我使用下面的bash脚本将5.0链接到旧版本的sdk:

platforms_path="$1/Contents/Developer/Platforms";
if [ -d $platforms_path ]; then
    for platform in `ls $platforms_path`
    do
        sudo ln -sf $platforms_path/$platform/Developer/SDKs/* $(xcode-select --print-path)/Platforms/$platform/Developer/SDKs;
    done;
fi;

你只需要为它提供.app的路径:

./xcode.sh /Applications/Xcode-463.app

我下载了XCode 4,并将iOS 6.1 SDK从它带到XCode 5,如其他答案所述。 然后我还安装了iOS 6.1模拟器(它在首选项中可用)。我还在项目设置中将Base SDK切换到iOS 6.1。

在所有这些操作之后,带有6.1基础sdk的项目在iOS 7模拟器中的comp能力模式下运行。

编辑:从2014年2月1日开始,苹果将不再接受ios 7之前的应用程序提交到App Store。因此,虽然这个技巧仍然有效,但对大多数读者来说并不有用。


是的,这很好。我仍然在一个项目中使用iOS 4.3(自从我们更新以来已经有一段时间了;但在iOS 6发布后,他们仍然接受了它),我目前用Xcode 5开发了10.5个应用程序。

参见如何将Xcode指向旧SDK,以便它可以用作“基础SDK”?有关如何设置它的详细信息。你可以使用我的fix-xcode 脚本链接一切为您每次升级。

唯一的诀窍就是拿到旧的sdk。如果你没有它们,你通常需要下载旧版本的Xcode(仍然可以在developer.apple.com上找到),打开安装包,然后四处寻找你需要的SDK。

sdk可以在安装包中找到:

xcode /内容/开发/平台/

您可以下载旧的SDK并将其安装进去

xcode /内容/开发/平台/ iPhoneOS.platform /开发/ sdk /

文件夹中。注销+登录只是为了确保更改生效,你应该在你的新XCode中看到旧的SDK

找到并下载旧的SDK。在这里可以找到旧的sdk。

我已经复制了xcode。app目录为Xcode_4.6.3.app。

现在你可以在两个xcode版本中进行测试和调试。你必须从相应的文件夹中运行它们,或者在桌面上创建快捷方式。从命令行构建时,将参数设置为iPhoneOS6.1而不是iPhoneOS7.0

这在Xcode5和iOS中非常有效。

进入Xcode5的SDK目录。它通常位于:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

向旧SDK添加一个符号链接,如下所示:

sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk

或者更准确地说,在命令行中,

sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk