我在这个问题上浪费了一整天的时间,但找不到解决方案: 我一直在使用iOS 6.1 SDK开发应用程序,整个设计依赖于iOS 6.1 UI。昨天,我已将手机更新到iOS 7,更新完成后,从备份中返回的以前部署的应用程序看起来和以前一样工作(在iOS 6.1上);一切都很好。但是,我不得不将我的Xcode更新到版本5,因此我可以在开发期间继续将连续调试版本部署到我的iOS 7设备。在更新到Xcode 5之前,我已经从Xcode的内部文件夹备份了iPhoneOS6.1.sdk软件包;然后更新到Xcode 5,然后将iPhoneOS6.1.sdk软件包放回其iOS 7 SDK旁边的文件夹中,该软件包随Xcode 5安装一起提供。我已将我的项目基础SDK切换到iOS 6.1,它确实出现在基本SDK选择器列表中,并确保在界面构建器中我的所有故事板/ XIB都设置为构建作为iOS 6.1。
然而,当我将应用程序部署到我的手机时,它看起来像废话,因为它显示了iOS 7 UI元素。如果我使用安装了iOS 6.1的设备,一切看起来都很好;如果我选择在iOS 7设备上进行调试,看起来XCode对我选择的基本SDK没有任何帮助,并将应用程序与iOS 7相关联。
如何强制Xcode,将相同的6.1链接内容部署到所有设备,无论它是否安装了iOS版本?
答案 0 :(得分:12)
查找并下载旧SDK。旧版SDK可在此处找到, https://developer.apple.com/downloads/index.action?name=Xcode
我已将xcode.app目录复制为Xcode_4.6.3.app
。
现在,您可以在两个xcode版本中进行测试和调试。您必须从相应的文件夹运行它们或在桌面上创建快捷方式。当我从命令行构建时,我将参数设置为iPhoneOS6.1而不是iPhoneOS7.0
这在Xcode5和iOS中对我很有用。 转到Xcode5的SDK目录。像这样添加旧SDK的符号链接:
ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk
答案 1 :(得分:7)
在Xcode 5工具栏中,对于您的目标,您会看到您的设备列出两次(您在问题中也提到了这一点)。出于一些奇怪的原因,一个是iOS 6.x外观,另一个是iOS7外观。尝试从此列表中的某个设备上构建/运行。如果您仍然看到iOS7外观,请单击工具栏中的停止,选择其他设备并重新构建。
我没有在Xcode 5中看到任何崩溃,因此如果它为您造成大量崩溃,您可能需要重新安装。
答案 2 :(得分:3)
首先,您需要从以前版本的XCode复制并粘贴iOS 6.1 SDK。我相信其他人已经指示了如何做到这一点。
然后,假设您打算继续开发iOS 6(例如,不打破iOS 6 UI,并且您不打算使用新API),请执行以下操作:
这应该继续允许您使用iOS 6样式的UI构建应用程序,同时允许您使用Xcode 5.我建议您专门为UI更改启动一个新的开发分支,以获取您的应用程序的UI iOS 7兼容。