Cordova Phonegap在构建iOS应用程序时出现“导出失败”错误代码70。

18

我目前正在使用Cordova Phonegap构建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

感谢任何帮助!


你最终解决了这个问题吗?我也遇到了同样的问题... - gabaum10
我遇到了相同的问题。 - Benyaman
2个回答

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>

请检查您的exportOptions.plist中是否有provisioningProfilessigningStyle值。如果没有,那么您可能使用的是cordova-ios版本低于4.5.2。这个问题已经在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)

原来这是由于 cordovacordova-plugin-console 构建到其核心中,如果您的项目中有该插件,则可能会出现上述错误。只需删除 cordova-plugin-console 即可解决此错误。以下是控制台插件 github 页面上的说明:

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

这是文档的链接: https://github.com/apache/cordova-plugin-console/blob/master/README.md

这个文件不是在运行时生成的吗?这样会不会撤销所有手动更改? - Abdul Sadik Yalcin
1
exportOptions.plist is automatically generated yes. The solution for me here was remove cordova-plugin-console - 4308
将平台移除并重新添加解决了我的问题。 - Abdul Sadik Yalcin

2
您可以通过返回旧版的 PhoneGap 来解决此问题。 将以下内容添加到您的 config.xml 文件中。
<preference name="phonegap-version" value="cli-6.3.1" />

对于一些人来说,降级不是一个选项。请看下面我的解释如何解决这个问题。 - 4308

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