我目前正在使用CordovaPhonegap为iOS构建应用程序。它工作正常,但现在我在终端中运行cordova build ios
时出现错误。
我收到以下错误:
**导出失败 **
错误:命令的错误代码 70:xcodebuild with args:-exportArchive,-archivePath,RoastBot.xcarchive,-exportOptionsPlist,/Users/JarrodMorgan/Desktop/RoastBot/platforms/ios/exportOptions.plist,-exportPath,/Users/JarrodMorgan/Desktop/RoastBot/platforms/ios/build/device
任何帮助不胜感激!
这是由于 Xcode 9 期望 exportOptions.plist 中的某些值位于错误消息中显示的路径中。在您的情况下,它是,/Users/JarrodMorgan/Desktop/RoastBot/platforms/ios/exportOptions.plist
.
以下是exportOptions.plist
对我的看法:
<?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>compileBitcode</key>
<false/>
<key>method</key>
<string>development</string>
<key>teamID</key>
<string>TEAM_ID_GOES_HERE</string>
<key>provisioningProfiles</key>
<dict>
<key>YOUR_BUNDLE_ID</key>
<string>PROVISIONIG_PROFILE_UUID_WOULD_BE_HERE</string>
</dict>
<key>signingStyle</key>
<string>manual</string>
<key>signingCertificate</key>
<string>iPhone Developer</string>
</dict>
</plist>
仔细检查您的exportOptions.plist
中是否有provisioningProfiles
和signingStyle
值,如果没有,那么您可能在4.5.2
之前cordova-ios
版本。这已修复并在cordova-ios 4.5.2
发布,请参阅此 PR
为了解决此错误,请将cordova-ios
更新为4.5.2
或更高版本,请删除插件和平台并重新添加它们。
但是,在升级到cordova-ios 4.5.4
的情况下,我开始看到以下错误:
ld: 270 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
事实证明,这是由于cordova
将cordova-plugin-console
内置到其核心中,如果您的项目中有该插件,则可能会收到上述错误。只需删除cordova-plugin-console
,此错误就会消失。以下是它在控制台插件的 github 页面上所说的:
此插件不再作为提供的功能工作 通过此插件现在包含在Cordova-iOS 4.5.0或更高版本中,并且 Cordova-Windows> 5.0.0 中已经内置了支持。你应该 从应用程序中删除此插件。
这是文档的链接。
您可以通过返回到旧的PhoneGap版本来解决此问题。 将此添加到您的配置.xml文件
<preference name="phonegap-version" value="cli-6.3.1" />