xcodebuild:“未找到适用的设备。”导出存档时

Posted

技术标签:

【中文标题】xcodebuild:“未找到适用的设备。”导出存档时【英文标题】:xcodebuild: "No applicable devices found." when exporting archive 【发布时间】:2015-10-09 14:42:14 【问题描述】:

从 Xcode 7† 开始,xcodebuild 导出存档步骤一直给我们带来错误。

构建命令

xcodebuild -exportArchive -archivePath "path/to/Thing.xcarchive" \
        -exportPath "path/to/" \
        -exportOptionsPlist path/to/PackageOptions-adhoc.plist

产量

2015-10-08 16:28:27.409 xcodebuild[62682:464728] [MT] IDEDistribution: Step failed: <IDEDistributionThinningStep: 0x7ff1a42d23f0>: Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo=0x7ff1a72ddd80 NSLocalizedDescription=No applicable devices found.
error: exportArchive: No applicable devices found.

Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo=0x7ff1a72ddd80 NSLocalizedDescription=No applicable devices found.

** EXPORT FAILED **

什么给了?如何解决?


† 7.0 和 7.0.1,在小牛队上。

【问题讨论】:

如果以上答案无法解决您的问题,请尝试此操作。 ***.com/a/43419887/1982185 【参考方案1】:

在我们的例子中,这与我们通过 rvm 使用非系统 ruby​​ 存在冲突。要修复,您需要在rvm use system 的上下文中调用xcodebuild。但是这样做很复杂,因为在脚本中使用rvm 比它应该的更难。

我们创建了一个脚本来为我们解决这个问题:

#!/bin/bash --login
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
rvm use system
xcodebuild "$@"

这是 xcodebuild 的直接替代品,其中

xcodebuild arg1 ... argn

会变成

path/to/xcbuild-safe.sh arg1 ... argn

我有gisted 生产就绪版本。确保您在该文件上chmod +x

【讨论】:

天啊,同样的问题。感谢修复和谷歌索引它:-) 这还不够用。在调用 rvm use system 后,我们不得不取消设置更多变量。我评论了要点。 @coffeebreaks 谢谢,我根据您的评论更新了要点脚本。如果有机会,请检查更新,看看它是否正常。 @ClayBridges 看起来不错。我将它打包用于 fastlane/gym 并使其在非 rvm 环境中工作。希望过几天能合并。这是 PR github.com/fastlane/gym/pull/176 和当前版本:github.com/lacostej/gym/blob/features/wrap_xcodebuild/lib/… 对于那些使用 XCode GUI 而不是从终端构建的人,我可以通过关闭 XCode、运行 rvm use system 然后再次打开 XCode 来使用此解决方案。谢谢@ClayBridges【参考方案2】:

因此,正如 Clay Bridges 的回答所暗示的那样,根本问题是 Ruby 中发生了错误。具体来说,此错误是由使用过期版本的 CFPropertyList gem 引起的。

您可以简单地更新此 gem 来解决问题。 xcodebuild 使用系统 ruby​​,所以只需这样做:

/usr/bin/gem install CFPropertyList

【讨论】:

【参考方案3】:

确保 xcodebuild 使用系统 ruby​​。

我通过这样做修复了它:

rvm use system

【讨论】:

使用此命令后导出成功,但我没有看到应用程序在设备上运行,我做错了什么吗?能指导一下吗?

以上是关于xcodebuild:“未找到适用的设备。”导出存档时的主要内容,如果未能解决你的问题,请参考以下文章

xcodebuild archive 导出ipa包

使用 xcodebuild 导出为 macOS 应用程序

使用 xcodebuild 从 archive 导出 ipa

使用 XCodebuild 和 shell 脚本导出 IPA

在终端上使用 xcodebuild 命令导出失败

如何在终端上从 xcarchive 导出 dsym 文件