Cordova Phonegap"导出失败"错误代码70在构建ios时

Jar*_*rod 15 ios cordova cordova-cli

我目前正在使用Cordova Phonegap为iOS构建应用程序.它工作正常,但现在我cordova build ios在终端运行时遇到错误.

我收到以下错误:

**出口失败**

错误:命令的错误代码70:带有args的xcodebuild:-exportArchive,-archivePath,RoastBot.xcarchive,-exportOptionsPlist,/ Users/JarrodMorgan/Desktop/RoastBot/platforms/ios/exportOptions.plist,-exportPath,/ Users/JarrodMorgan /桌面/ RoastBot /平台/ IOS /编译/设备

任何帮助表示赞赏!

Ole*_*nko 5

这是由于 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>
Run Code Online (Sandbox Code Playgroud)

仔细检查你有provisioningProfilessigningStyle价值观的exportOptions.plist,如果你不这样做,那么你可能有cordova-ios之前的版本4.5.2。已修复并发布,cordova-ios 4.5.2请参阅此PR

为了使您解决这个错误更新您cordova-ios4.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)
Run Code Online (Sandbox Code Playgroud)

事实证明,这是由cordova内置cordova-plugin-console于其核心的事实引起的,如果您的项目中有该插件,则可能会出现上述错误。只需删除cordova-plugin-console,此错误就会消失。这是它在控制台插件的 github 页面上说的:

不再使用此插件,因为此插件提供的功能现在包含在 cordova-ios 4.5.0 或更高版本中,并且支持已内置到 cordova-windows > 5.0.0。您应该从您的应用程序中删除此插件。

这是文档链接


小智 2

您可以通过返回旧的 PhoneGap 版本来解决此问题。将其添加到您的 config.xml 文件中

<preference name="phonegap-version" value="cli-6.3.1" />
Run Code Online (Sandbox Code Playgroud)