运行 iOS 8.3 的 iPhone 在 Xcode 6.2 中显示为不合格
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/29556950/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
iPhone running iOS 8.3 shows up as ineligible in Xcode 6.2
提问by Diego Freniche
Current setup:
当前设置:
- iPhone 6+ updated to iOS 8.2
- iMac running Mavericks (10.9) with Xcode 6.2
- Deployment target set to 8.2
- iPhone 6+ 更新至 iOS 8.2
- 使用 Xcode 6.2 运行 Mavericks (10.9) 的 iMac
- 部署目标设置为 8.2
When I connect the iPhone, it shows up as ineligible.
当我连接 iPhone 时,它显示为不合格。
Also, it shows this warning:
此外,它显示此警告:
I've tried:
我试过了:
- to reboot both iPhone & iMac -> Not solved
- to manually select iPhone from:
Product > Destination > Ineligible Devices
- 重新启动 iPhone 和 iMac -> 未解决
- 从以下位置手动选择 iPhone:
Product > Destination > Ineligible Devices
Many other answers in this question, but all for problems using Xcode 6.3, not 6.2.
此问题中有许多其他答案,但都是针对使用 Xcode 6.3 而不是 6.2 的问题。
I know I can solve this:
我知道我可以解决这个问题:
- upgrading to Yosemite & installing Xcode 6.3
- using an iPhone running 8.2
- 升级到 Yosemite 并安装 Xcode 6.3
- 使用运行 8.2 的 iPhone
But is there any possibility that mounting the Xcode 6.3 DMG and copying some libs / symlinking something it will work?
但是有没有可能安装 Xcode 6.3 DMG 并复制一些库/符号链接它会起作用?
回答by jcsahnwaldt says GoFundMonica
Just copy the folder DeviceSupport/8.3
from Xcode 6.3 to Xcode 6.2.
只需将文件夹DeviceSupport/8.3
从 Xcode 6.3复制到 Xcode 6.2。
Details:
细节:
- Download Xcode 6.2 and 6.3, install as
/Applications/Xcode_6.2.app
and/Applications/Xcode_6.3.app
(or similar names) - In both installations, there's a folder
Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
- In Xcode 6.2, this folder contains packages for iOS 8.2 and many lower versions, but not for 8.3.
- In Xcode 6.3, this folder also contains a package for iOS 8.3. In my case, the folder is called
8.3 (12F69)
- Copy the iOS 8.3 package from Xcode 6.3 to Xcode 6.2 (this command is one line, of course):
- 下载 Xcode 6.2 和 6.3,安装为
/Applications/Xcode_6.2.app
和/Applications/Xcode_6.3.app
(或类似名称) - 在两个安装中,都有一个文件夹
Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
- 在 Xcode 6.2 中,此文件夹包含适用于 iOS 8.2 和许多较低版本的软件包,但不包含适用于 8.3 的软件包。
- 在 Xcode 6.3 中,此文件夹还包含一个适用于 iOS 8.3 的包。就我而言,该文件夹被称为
8.3 (12F69)
- 将 iOS 8.3 包从 Xcode 6.3 复制到 Xcode 6.2(当然这个命令是一行):
cp -r '/Applications/Xcode_6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/8.3 (12F69)' '/Applications/Xcode_6.2.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport'
cp -r '/Applications/Xcode_6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/8.3 (12F69)' '/Applications/Xcode_6.2.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport'
- Or even better, create a link:
- 或者更好的是,创建一个链接:
ln -s '/Applications/Xcode_6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/8.3 (12F69)' '/Applications/Xcode_6.2.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport'
ln -s '/Applications/Xcode_6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/8.3 (12F69)' '/Applications/Xcode_6.2.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport'
- Now restart Xcode 6.2 and connect your device through USB. Xcode should allow you to test apps on it.
- 现在重新启动 Xcode 6.2 并通过 USB 连接您的设备。Xcode 应该允许您在其上测试应用程序。
Diego Freniche's solution (copying the whole iPhoneOS.platform
folder) was a great help, but when I ran my app from Xcode 6.2, it looked slightly different than it did when I deployed an ipa file on the phone (buttons in wrong positions, status bar display wrong). I guess Xcode got confused and built the app as if it was targeted at a different iOS version.
Diego Freniche 的解决方案(复制整个iPhoneOS.platform
文件夹)很有帮助,但是当我从 Xcode 6.2 运行我的应用程序时,它看起来与我在手机上部署 ipa 文件时的情况略有不同(按钮位置错误,状态栏显示错误)。我猜 Xcode 感到困惑并构建了应用程序,就好像它是针对不同的 iOS 版本一样。
With this solution (only copy one folder in DeviceSupport
), it looks like the app works exactly as it is supposed to. I'll let you know if I encounter problems, but I haven't seen any so far.
使用此解决方案(仅复制 中的一个文件夹DeviceSupport
),看起来该应用程序完全按照预期运行。如果我遇到问题,我会告诉你,但到目前为止我还没有看到任何问题。
回答by Diego Freniche
A little progress, but this is a WIP.
有点进步,但这是一个WIP。
Looks like in Yosemite Xcode 6.2 works correctly with 8.3 devices. Need to test on Mavericks
看起来在优胜美地 Xcode 6.2 可以在 8.3 设备上正常工作。需要在小牛上测试
Testing with Xcode 6.2 in Yosemite (need to test also in Mavericks, any feedback would be appreciated)
在 Yosemite 中使用 Xcode 6.2 进行测试(也需要在 Mavericks 中进行测试,任何反馈将不胜感激)
- Go to your Xcode 6.2 folder and rename
- 转到您的 Xcode 6.2 文件夹并重命名
/Applications/Xcode-6.2 copia.app/Contents/Developer/Platforms/iPhoneOS.platform
/Applications/Xcode-6.2 copia.app/Contents/Developer/Platforms/iPhoneOS.platform
into
进入
/Applications/Xcode-6.2 copia.app/Contents/Developer/Platforms/iPhoneOS.platform.old
/Applications/Xcode-6.2 copia.app/Contents/Developer/Platforms/iPhoneOS.platform.old
- Mount your Xcode 6.3 DMG, install it
- Copy from Xcode 6.3 this folder:
- 挂载你的 Xcode 6.3 DMG,安装它
- 从 Xcode 6.3 复制此文件夹:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform
inside your Xcode 6.2 folder.
在您的 Xcode 6.2 文件夹中。
you'll probably find an error telling you
root
user does not own the simulator / OS Platform folder. To solve that just open Terminal, then:$ cd /Applications/Xcode6.2.app/Contents/Developer/Platforms
$ sudo chown -R root iPhoneSimulator.platform/
$ sudo chown -R root iPhoneOS.platform/
now you can run your app inside your iOS 8.3 device from Xcode 6.2 but you have no simulators in the target tdestination menu
您可能会发现一个错误,告诉您
root
用户不拥有模拟器/操作系统平台文件夹。要解决这个问题,只需打开终端,然后:$ cd /Applications/Xcode6.2.app/Contents/Developer/Platforms
$ sudo chown -R root iPhoneSimulator.platform/
$ sudo chown -R root iPhoneOS.platform/
现在您可以在 Xcode 6.2 的 iOS 8.3 设备中运行您的应用程序,但目标 tdestination 菜单中没有模拟器
UPDATE: I'm getting weird errors while ibtool
tries to compile the storyboards:
更新:我在ibtool
尝试编译故事板时遇到奇怪的错误:
/Users/dfreniche/Desktop/Test/Test/Base.lproj/Main.storyboard: The operation couldn't be completed. (com.apple.InterfaceBuilder error 2001.)
/Users/dfreniche/Desktop/Test/Test/Base.lproj/Main.storyboard:操作无法完成。(com.apple.InterfaceBuilder 错误 2001。)
So finally give up and update to Yosemite. If there's any new info on this, please share.
所以最终放弃并更新到 Yosemite。如果有关于这方面的任何新信息,请分享。
回答by David
Had the same problem with connecting iOS8.3 devices to Xcode 6.2 on Mavericks. Ok on a machine at work running Xcode 6.4 on Yosemite. Software update on the Mavericks machine doesn't offer any higher version. Looking at the specs of Xcode 6.4 (and presumably 6.3 of the original question) says it requires OS X 10.10 (i.e. Yosemite). So, whether or not you can hack around it, the behaviour you/we are seeing on Mavericks is what Apple intends.
在 Mavericks 上将 iOS8.3 设备连接到 Xcode 6.2 时遇到了同样的问题。在 Yosemite 上运行 Xcode 6.4 的机器上可以。Mavericks 机器上的软件更新不提供任何更高版本。查看 Xcode 6.4(大概是原始问题的 6.3)的规格说它需要 OS X 10.10(即 Yosemite)。因此,无论您是否可以绕过它,您/我们在 Mavericks 上看到的行为都是 Apple 的意图。
回答by Codingpan
I have the same issue and I don't want to just use the lastest version of XCode for the need of maintaining my old projects. I end up with installing two versions XCode(6.2 and 6.3) to solve this problem. Here is what I did.
我有同样的问题,我不想只使用最新版本的 XCode 来维护我的旧项目。我最终安装了两个版本的 XCode(6.2 和 6.3)来解决这个问题。这是我所做的。
- Download XCode6.2 install package from apple site
- Upgrade the existed XCode6.2 to x6.3
- Open my project on XCode6.3 (this time the device can be recognized by XCode, and I think XCode6.3 might have done some updates to your project.)
- Close my project, re-install XCode6.2, there will be a prompt saying I have a newer version and if I want to keep both. Click Yes. Then I have two versions of XCode.
- 从苹果网站下载 XCode6.2 安装包
- 将现有的 XCode6.2 升级到 x6.3
- 在XCode6.3上打开我的项目(这次设备可以被XCode识别了,我觉得XCode6.3可能对你的项目做了一些更新。)
- 关闭我的项目,重新安装XCode6.2,会有提示说我有更新的版本,如果我想同时保留两个。单击是。然后我有两个版本的 XCode。
After all those steps done, I can finally open my project and use my device in XCode6.2. Hopefully it can help someone.
完成所有这些步骤后,我终于可以打开我的项目并在 XCode6.2 中使用我的设备。希望它可以帮助某人。
回答by Abel Pandian
XCODE 6.3 is out.. It solved my problem.. If you have Yosemite, you can download the 6.4 beta version
XCODE 6.3出来了..它解决了我的问题..如果你有优胜美地,你可以下载6.4测试版