在iOS 10上使用Xcode 7


138

我想在iOS 10上使用Xcode 7。

据我了解,使用iOS 10 beta需要Xcode 8 beta,因此我应该升级Xcode。但是,我的代码无法由新的编译器构建,因此我想继续使用Xcode 7。

我该如何实现?


2
请考虑将您的问题重写为最小,完整和可验证的
Katya Handler

4
@ParagBafna:但是Objective-C和Swift是编程语言!这使Xcode成为主要用于编程工具。这个问题不应该被解决。
tharkay '16

准备好的磁盘映像中存在重复的问题,因此您不需要安装较新的Xcode:stackoverflow.com/a/39865199/286361
Vladimir

Answers:


197

您需要使用Xcode 8 Beta中的DeveloperDiskImage。为此,提取Xcode 8 Beta应用程序并将iOS 10的DeveloperDiskImage复制到您的Xcode文件夹中。

假设您将Xcode解压缩到Downloads / Xcode-beta.app

cp -r /Users/fanruten/Downloads/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A345\) /Applications/Xcode_7.2.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

复制DeveloperDiskImage之后,您应该启动Xcode并将iOS设备连接到Mac。

编辑:
使用标准Xcode安装,可以创建一个软链接:

sudo ln -s \
/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5309d\) \
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0

如果这对您不起作用,那仅仅是因为没有Xcode_7.2.1.app,而仅仅是Xcode.app,谢谢您!
马库斯

4
这似乎不适用于iOS 10 beta 2 kAMDMobileImageMounterDeviceLocked。尚未找到解决方法。
Jonathan Mitchem '16

2
与我一起使用beta3
mbo42 '16

1
有人对Beta 6有好运吗?
mlevi

4
如果此答案对您不起作用,请检查并确保“设备支持”文件夹ex的结尾字符串(14A5309d)与您的iOS设备上的版本匹配。它表示beta种子。如果不是,请更新您的Xcode以匹配您的iOS设备的种子,然后按照上面的答案进行操作。
猎人和尚

70

您只需复制并粘贴所需OS的文件夹,即可在旧版Xcode上使用任何SDK。同样,您显然不能拥有两个具有相同名称的应用程序,因此只需将它们重命名为Xcode 7和Xcode 8。

右键单击 / ctrl单击 Xcode 8应用程序图标以显示包内容并导航到此位置,然后复制iOS 10.0或WatchOS 3.0文件夹等。

/Applications/Xcode8.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport /Applications/Xcode8.app/Contents/Developer/Platforms/WatchOS.platform/DeviceSupport

在此处输入图片说明

然后导航到Xcode 7中的相同位置并粘贴文件夹。

/Applications/Xcode7.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport /Applications/Xcode7.app/Contents/Developer/Platforms/WatchOS.platform/DeviceSupport

在此处输入图片说明

重新启动Xcode7。您将需要等待一段时间,以便Xcode重建符号等。


2
只是附带说明,处理符号文件可能需要几分钟。我正在使用最新,最出色的MacBook Pro,这需要一段时间。第一次将手机插入b / c Xcode后,我不得不拔下电话。此后效果很好,但是花了一些时间来处理文件。
kbpontius

是的,在我的帖子中提到了这一点。干杯。
爱迪生

我们需要支持的iOS 6和7,所以就用上述技术来添加6.0,6.1,7.0和7.1的支持的Xcode 8.
iCyber​​Paul

好的答案@tymac-我遵循了您的步骤,但是在Deployment Target中看不到iOS 10。任何想法?
塔尔·锡安

@TalZion您没有在下拉列表中看到版本,因为必须确保所使用的Xcode版本与设备上的版本兼容。这是一个模拟磁盘映像问题。
爱迪生

25

对我而言,以上建议均无效。

相反,我导航到此位置(按CMD + SHIFT + K插入以下路径)(通过finder)

/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

并复制该10.0(14A5339a)文件夹,其中包含开发人员磁盘映像。然后我将其粘贴到

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

编辑:我正在使用Xcode7(版本7.3.1-7D1014),iOS 10公共beta 6(14A5345a)-此版本于2016年8月19日发布


真好!您正在使用什么版本的Xcode?看来您同时使用Xcode和Xcode Beta-是否可以同时为两者添加版本?
Cullub '16

1
这个解决方案对我有用!我不得不回到xcode 7.3.1来处理卡在swift 2.x <2.3上的旧项目(由于与更高版本的swift版本不兼容的第三方库依赖性),现在我可以在iPhone上构建iOS 10.2,谢谢!
温室

2

尽管复制包含磁盘映像的文件夹仍然是最好的方法,但是我没有时间下载最新的Xcode来保存磁盘映像文件夹,因此我基本上将应用程序存档并使用“保存用于开发”部署选项将其导出,然后使用iTunes应用将其安装在测试设备上。

就我而言,我有Xcode 8.0想要在10.2.1 iOS设备上构建。

在此处输入图片说明


1

Pascal && Fanruten是正确的。

已于8月12日在iPhone6 Plus上的Xcode版本7.3.1(7D1014)和iOS 10.0(14A5309d)上进行了测试。

我按照建议进行了符号链接(路径有些不同……请参阅下文。),但是可以链接到Xcode 8.0 beta 4(8S188o)。

仅出于完整性考虑:

Beta 4

sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5322e\)/  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0

Beta 5

sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5339a\)/  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0

对于从XCode 8 Beta 5到Xcode 7的符号链接:sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5335a\)/ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0
cdf1982

0

Tymac的答案几乎对我有用。而不是复制和过去,我打开了两个Finder窗口,然后将iOS 10文件夹拖到Xcode 7文件夹。将其放入Xcode 7后,打开文件夹并确保有dmg文件。

之前,我已将iOS 10设备支持文件夹的副本拖到我的桌面上,然后将其复制到Xcode 7文件夹中。那似乎解压缩了dmg文件,因此Xcode 7仍然抱怨。需要是文件夹中的dmg文件。


0

一个警告。我尝试将XCode 7.3.1与来自XCode 8.1的ios 10图像一起用于cordova项目(它可以工作),但是在推送通知权限方面存在问题(针对ios 8/9/10的不同设置)。不确定,但是在我看来7.3.1中缺少一些编译器指令


0

这是针对XCode 9和iOS 11 Beta 1的:

sudo ln -s \
/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0\ \(15A5278f\) \
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0

这实际上对您有用吗?在Xcode 8.我不能添加在iOS模拟器11
奥尔特温根茨

@OrtwinGentz看你能不能在Xcode 9启动模拟器-如果它运行,你应该能够关闭的Xcode 9从XC 8.在模拟器上调试应用程序
布莱恩

我可以在Xcode 9中启动模拟器。但是我无法使用Xcode 8(针对iOS 10 SDK)进行构建并无法在iOS 11模拟器上进行调试。
Ortwin Gentz

这种方法可以在Xcode 7.3和iOS 11设备上使用吗?
DHEERAJ

-1

wwdc2019之后,我针对Xcode 10的Xcode 11 beta的两美分:

ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/13.0 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/13.0

因此我可以将iPhone与Xcode 10中的iOS 13 beta一起使用。

ln -s之后,请重新启动Xcode

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.