从Xcode 4.6.2部署到iOS 7(beta)设备。

34

我昨天在我的iPhone 5上安装了iOS 7以进行测试。问题是,我现在无法从Xcode将任何测试应用程序部署到我的iPhone上,因为它显示版本不受支持。我不能(或不想)从iOS 7降级到6,并且不想(或无法)升级Xcode到版本5,因为Xcode 5 Beta不支持提交。

那么,我如何将应用程序从Xcode 4.6.2部署到iOS 7 Beta?


7
您需要使用Xcode 5。 - Bryan Chen
1
奇怪。我有一个设备上安装了iOS 7,但使用Xcode 4.6.2在该设备上构建和运行应用程序没有任何问题。也许区别在于我还安装了Xcode 5,并已经使用它来构建设备上的应用程序。也许先这样做可以让您随后使用Xcode 4.6与iOS 7设备。这是测试现有iOS 5/6应用程序在iOS 7上正常工作的好方法。 - rmaddy
如果我安装5个,它们可以共存吗?需要什么技巧吗? - xmorera
3
可以在同一台电脑上同时安装Xcode 4.6.2 和 Xcode 5。不需要任何技巧,两个软件都放在 /Applications 文件夹中。Xcode 4.6 的名称为 Xcode.app。目前,Xcode 5 的名称为 Xcode5-DP.app。 - rmaddy
1
我在想为什么我回答了这个问题。 - oiledCode
如果由于某些原因无法安装Xcode5,请查看我下面的答案。 - ShayanK
15个回答

90

我不知道这是否对任何人有帮助,但是我已经能够使用Xcode 4.6.2部署到运行iOS 7的iPhone 5上。我认为这是系统中的一个错误,但这对我来说无关紧要。它可以正常工作。现在,我按照以下步骤进行:

  1. 确保你从App Store下载了最新版本的Xcode。(我不知道为什么,但为什么不呢?)

  2. 下载并安装Xcode 5。

  3. 关闭系统中运行的所有Xcode实例(4.6.2和5)

  4. 运行Xcode 5。你会看到它识别出你的设备,你可能需要重新激活它并将其用于开发。

  5. 同时运行Xcode 4.6.2。你会看到它识别出你的iPhone,使其成为有效的开发目标。

  6. 关闭或做任何你想做的事情与Xcode 5。从此时起,你可以继续使用Xcode 4.6.2

我很久没有关闭电脑或重启它了,所以我不知道这是巧合还是什么。但我合作的其他人也能够做到同样的事情,所以我希望它对你也有用。

编辑:

更好的是,我发现从Xcode 4.6.x构建到iOS 7设备,实际上使手机在iOS6或之前模式下运行,这是所有应用程序目前运行的方式。因此,我的猜测是,如果从应用商店部署应用,你的应用会在iOS 7中呈现出这种外观。假设你的目标是iOS 4+

同样地,如果你使用Xcode 5构建相同的应用程序,默认情况下会尝试合并一些iOS 7的外观代理,而UI的行为肯定不同。虽然我没有多玩Xcode 5,但可能有一个切换按钮可以打开和关闭此兼容性模式。


1
这听起来是一个很好的方式。我今晚会试一试! - xmorera
1
@iVishal 嗯,那是完全不同的问题。我会说这是你的配置问题,Xcode 5 将继承你在 Xcode 4 中的配置,所以除非你的项目有一些疯狂的设置阻止你构建到你的设备上:
  • 检查你的组织者(CMD + Shift + 2)
- Dan1one
1
  • 检查您的组织者(CMD + Shift + 2)
  • 确保您的设备已经获得开发授权
  • 无论如何,从组织者中右键单击它,点击“添加设备配置门户”,并确保您的团队配置门户已安装在您的设备上。
- Dan1one
我相信我之前已经完成了这个过程,并且可以从Xcode 4部署到iOS 7。然后过了一段时间,我又无法从Xcode 4部署到iOS 7设备。所以我重新进行了这个过程,现在它又可以正常工作了... - Jonny
我简直不敢相信这个方法居然奏效了,谢谢!这不仅让我能够再延迟一段时间不使用Xcode5,更重要的是,它让我能够在iOS7设备上测试我的iOS6模式应用程序(并修复一些视觉错误)——这似乎是在Xcode5中无法实现的。 - alexgophermix
显示剩余3条评论

11

我无法将MacOS从10.7.5升级到10.8.x,这就是为什么我无法在我的MAC上安装Xcode5的原因。我下载了Xcode5,但由于不兼容,无法安装。

我能够在iPhone 4上使用iOS 7和XCode 4.6以调试模式运行应用程序 (我后来感到非常高兴)

步骤:

  1. 使用不兼容的Xcode5(将其从dmg映像中复制到其他位置,其中将显示一个交叉符号),右键单击并单击“显示包内容”。
  2. 转到 Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs 并将 iPhoneOS7.0.sdk 文件复制到 Xcode4.6 中对应的文件夹中,在显示其包内容后执行此操作。
  3. 转到 Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 并将 7.0 和 7.0.3(11B508) 文件复制到 Xcode4.6 中对应的文件夹中,在显示包内容后执行此操作。

现在,当您打开Xcode4.6时,您的项目基本SDK应该是7.0,如果尚未检测到您的设备,请断开连接并重新连接您的设备,以便它开始“从iPhoneXYZ获取符号文件”

希望这能帮助到某些人。

还有一件重要的事情,在您的方案中,调试器应设置为“LLDB”


8
你不能这样做。但是你可以安装多个版本的xcode,如4.6.x和5.0。
一旦安装了5.0版本,你可以像下面这样操作:
sudo xcode-select -switch /Applications/Xcode5.0.app

你显然可以通过同样的方式切换回4.6.x版本。


4

我发现最好的方法是这样的。

在组织者中,将iOS 7 ipsw文件添加到“软件映像”,然后拔掉并重新插入手机。完成!您应该能够在您的iPhone上部署构建。


1
实际上不用理我,我重启了电脑后这个方法就不起作用了。我猜测是因为之前加载了XCode 5,然后它识别到我的设备... - jklp
这对我似乎没有起作用(在OSX 10.7.5上使用Xcode 4.6.1)。 - Saxon Druce
这个可行!不过你可能需要为你的设备硬件找到精确的IPSW文件,即iPhone 4、iPhone 4S、iPhone 5型号A1428、iPhone 5型号A1429、iPadBlahBlah等有不同的IPSW文件...(iPhone 5的确切“型号”写在其背面。) - TaylanKammer
好的,现在它不再工作了,在我安装了这个IPSW到设备上(之前是beta版本),并安装了包括关闭和重新打开Xcode的iTunes 11之后;我不知道是什么导致它不再工作了。奇怪的事情。-_- - TaylanKammer
我也试过同样的操作,在复制ipsw文件并恢复iPad mini后,出现了一个错误提示。所以它又升级到了iOS7的最新版本。请告诉我有没有解决方案,因为我现在不能在真实设备上测试我的应用程序,这非常紧急。 - Mohit Tomar
显示剩余4条评论

4
为了将 Xcode 4.6 部署到 iOS7 设备上,我所需做的只是从 iOS Dev Center 网站(位于 iOS7 GM 种子部分)安装新版本的 iTunes 11.1 beta 2。无需安装 Xcode 5。现在我可以使用 Xcode 4.6 来解决应用程序在 iOS7 上遇到的轻微问题,并提交到应用商店,保留 iOS6 接口,直到我有时间使用 Xcode 5 对其进行升级(适配 iOS7)。

3
我建议不要在这里使用模拟器(虽然有方法可以在Xcode4上启用iOS7模拟器),而是使用真实的硬件设备。你现在可能已经有一个装有iOS7的设备了 ;-)
如果你只需要在使用XCode4时部署应用程序到iOS7上,Damon's tip就足够了。调试仅限于日志文件 :-/ 但在我的情况下,这是唯一的解决方案,因为我根本无法安装Xcode5(等待新的Mac Pro ;-))。
所以在这种情况下:
  1. 归档产品(Product > Archive)将按预期编译而没有警告。选择您喜欢的基本SDK版本,但我建议使用原始版本(6.x?)而不是7。
  2. 从组织者中使用与您的iOS7设备匹配的配置文件进行Ad Hoc开发分发。
  3. 使用iTunes在您的iOS7设备上安装.ipa文件。
有点麻烦,但如果您没有安装XCode5,则是最稳定的方式。

我只想说这个方法百分之百有效!非常感谢您提供的信息 :) - d1mitar

2
我们需要在另一个工作站上安装 XCode 5 的 beta 版本。使用该版本,您可以为 iOS 7 设备进行开发配置。 回到正常的生产工作站,并使用 XCode 4 将配置文件添加到 iOS 7 设备上(现在 Organizer 已经识别出它了)。 然后通过 XCode 4 构建并将代码部署到设备上。

2

请确保您已经安装了两个版本的XCode。

显然,您可以尝试启动XCode 5并尝试从那里构建应用程序。 之后,关闭XCode 5并运行XCode 4.6.2。然后尝试为同一设备构建。

尽管我的设备上有iOS7。但我仍然能够使用XCode 4.6.2进行构建。不过,在重新启动手机后,可能会被禁用,您需要再次执行相同的过程。


1
我在使用xCode 5.1和iOS8测试版时遇到了类似的问题。xCode无法识别我的iPhone 5(黄色针脚..)。您可以使用符号链接欺骗xCode(xCode会认为它也能处理iOS8..)。执行以下命令:sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/7.1\ (11D167) /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/8.0\ (12A4265u)。

这让我在iOS 8 Beta 2上朝着正确的方向前进,但我制作的符号链接的目标引用了Xcode6-Beta2.app,而不是Xcode.app。在那之后工作正常。 - mbm29414

1
如果您有多个启动分区/驱动器,可以在其中一个磁盘上安装Xcode 5。使用该系统启动并验证iPhone的开发。然后在另一个带有Xcode 4.6的磁盘上重新启动,它仍将被识别为开发设备,并允许应用程序安装/测试等操作。 我已经这样做了,对我来说很好用。我的“主”驱动器上有OS 10.8和Xcode 4.6,而另一个“测试”驱动器上有OS 10.9和XCode 5。 对我来说有效,但这当然可能会因为任何以后的OS或XCode更新而改变。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接