使用iOS 10升级到Xcode 8后,我收到了这个错误。我是最新的El Capitan并使用以下版本的ruby(我通过rvm更新,与2.0.0系统版本相同)和CFPropertyList:
Philipps-MacBook-Pro:mobile-sdk prakuschan$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
Philipps-MacBook-Pro:mobile-sdk prakuschan$ gem list CF
*** LOCAL GEMS ***
CFPropertyList (2.3.3)
xcodebuild -exportArchive命令在shell脚本中执行,成功归档后,我收到以下错误:
** ARCHIVE SUCCEEDED **
2016-09-22 10:02:16.460 xcodebuild[10375:8369748] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/9y/r64c9wld0jx2yf3glsrzhhr00000gn/T/AppName_2016-09-22_10-02-16.456.xcdistributionlogs'.
2016-09-22 10:02:18.228 xcodebuild[10375:8369748] [MT] IDEDistribution: Step failed: <IDEDistributionThinningStep: 0x7fe435f9dfb0>: Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo={NSLocalizedDescription=No applicable devices found.}
error: exportArchive: No applicable devices found.
Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found." UserInfo={NSLocalizedDescription=No applicable devices found.}
** EXPORT FAILED **
在查看xcdistributionlogs时,IDEDistribution.standard.log在最后包含以下行:
2016-09-22 08:02:18 +0000 [MT] /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool exited with a signal 6
2016-09-22 08:02:18 +0000 [MT] ipatool JSON: (null)
我不知道它是否有价值,但这是ipatool的路径:
2016-09-22 08:02:17 +0000 [MT] Running /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool
非常感谢任何帮助。我已经在谷歌上尝试了很多建议,但还没有找到解决方案。
答案 0 :(得分:10)
我看到了同样的问题。搜索完毕后:
https://forums.developer.apple.com/thread/13446
和其他地方的Xcode 7类似的问题。我意识到这个是独一无二的。如果您在Xcode 8中调整ipatool脚本,则可以修复它。
sudo vi /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool
并注释掉这一行:
# Check the artwork idiom.
#return nil,"the device doesn't support the app's UIDeviceFamily" unless (deviceTraits.supportedIdioms & bundle.supportedIdioms).size > 0
通过以下方式调查ipatool命令:
/var/folders/.../IDEDistribution.standard.log
您可以通过以下方式搜索这些:
$ sudo find /private/var -name "*.xcdistributionlogs"
答案 1 :(得分:5)
我们在运行
后遇到了同样的问题"No applicable devices found"
xcodebuild -exportArchive -archivePath ../bin/archive/GetSocialTestApp.xcarchive -exportPath ../bin/ -exportOptionsPlist ../../scripts/exportOptions.plist
工作解决方案:使用fastlane repo中的xcodebuild
包裹xcbuild-safe.sh
。详细解决方案描述了here。
如图所示,问题是由rvm
环境变量引起的,xcbuild-safe.sh
在执行xcodebuild
之前清除它们。
无效解决方案:
ipatool
脚本
CFPropertyList
,sqlite3
抱怨的红宝石宝石ipatool
答案 2 :(得分:2)
在包含第三方框架时,我正在使用我的企业项目获得Error Domain=IDEDistributionErrorDomain Code=14 "No applicable devices found."
。我的exportOptionsPlist
文件包含compileBitcode=NO
条目,但项目本身仍然有bitcode。
我还使用了/var/folders/.../IDEDistribution.standard.log
的日志,发现了一个更清晰的错误,引导我找到解决方案。
更多信息:https://developer.apple.com/library/content/technotes/tn2432/_index.html
答案 3 :(得分:2)
复制以下内容并将其添加到〜/ .bashrc的末尾(如果您使用的是ZSH,则为〜/ .zshrc)。 并退出终端并重新启动(必须)。
unset RUBYLIB
unset RUBYOPT
unset BUNDLE_BIN_PATH
unset _ORIGINAL_GEM_PATH
unset BUNDLE_GEMFILE
unset GEM_HOME
unset GEM_PATH
供参考:
由于Xcode依赖于2个外部宝石:sqlite和CFPropertyList 更多信息https://github.com/fastlane/fastlane/issues/6495
我们必须为rbenv,rvm以及用户使用bundler时取消设置这些变量 即使我们不在诸如CircleCI之类的某些环境中使用rbenv, 我们还需要显式取消设置GEM_HOME和GEM_PATH。 更多信息https://github.com/fastlane/fastlane/issues/627
答案 4 :(得分:1)
就是这样!设置bitcode = no
,错误得到修复。
答案 5 :(得分:0)
ipatool
突破的原因。
这是Google Cast 3.2 SDK,它缺少plist框架的条目。将其更新为3.3解决了出口问题。
参考文献: https://code.google.com/p/google-cast-sdk/issues/detail?id=954 https://github.com/fastlane/fastlane/issues/6223#issuecomment-267343853
答案 6 :(得分:0)
答案 7 :(得分:0)
与XCode 8.2.1存在同样的问题
就我而言,问题是在使用以下导出信息plist导出adhoc或appstore分发的存档时再现
<?xml version=1.0 encoding=UTF-8?>
<!DOCTYPE plist PUBLIC -//Apple//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version=1.0>
<dict>
<key>teamID</key>
<string>TEAMID</string>
<key>method</key>
<string>ad-hoc</string> # or `app-store`
<key>uploadSymbols</key>
<true/>
<key>compileBitcode</key>
<false/>
<key>uploadBitcode</key>
<false/>
</dict>
</plist>
事实证明,其中一个链接框架是使用bitcode编译的。这是从xcode导出日志中指出的:
IDEDistribution.stadard.log
:
error: Failed to verify bitcode in YandexMapKit.framework/YandexMapKit:
error: Bundle only contains bitcode-marker /var/folders/zb/ftpjx10s547ddmzm_ybqdm51xdv_t7/T/IDEDistributionThinningStep.NKQ/Payload/Avito.app/Frameworks/YandexMapKit.framework/YandexMapKit (armv7)
我不得不手动将YandexMapKit
项目重新编译为iphoneos
- 和iphonesimulator
- 框架并将它们合并到一个通用框架中
答案 8 :(得分:0)
首先,您需要检查是否已在mac上安装了带有gem的sqlite3和CFPropertyList。 使用这些命令查看终端中的结果:
gem list | grep sqlite3
gem list | grep CFPropertyList
如果你什么都不打印,那么你必须用sudo安装它们
sudo gem install sqlite3
sudo gem install CFPropertyList