xcodebuild:离子电容器应用程序中的命令失败,退出代码为 65

Posted

技术标签:

【中文标题】xcodebuild:离子电容器应用程序中的命令失败,退出代码为 65【英文标题】:xcodebuild: Command failed with exit code 65 in Ionic Capacitor Application 【发布时间】:2019-07-18 12:49:01 【问题描述】:

我有一个离子项目,它使用一个电容器。我的项目的环境信息显示如下:

Ionic:

   ionic (Ionic CLI)  : 4.1.1 (/usr/local/lib/node_modules/ionic)
   Ionic Framework: ionic-angular 3.9.2
   @ionic/app-scripts : 3.1.11

Capacitor:

   capacitor (Capacitor CLI) : 1.1.0
   @capacitor/core           : 1.1.0

Cordova:

   cordova (Cordova CLI) : 7.0.0
   Cordova Platforms     : none
   Cordova Plugins       : no whitelisted plugins (0 plugins total)

System:

   android SDK Tools : 26.1.1 (/Users/iosbuild/Library/Android/sdk)
   NodeJS            : v9.4.0 (/usr/local/bin/node)
   npm               : 6.4.1
   OS                : macOS High Sierra
   Xcode             : Xcode 9.4.1 Build version 9F2000



   ╭─────────────────────────────────────╮
   │                                     │
   │   Update available 4.1.1 → 5.2.3    │
   │    Run npm i -g ionic to update     │
   │                                     │
   ╰─────────────────────────────────────╯

为了构建和部署项目,该项目使用 Fastlane。应用程序自动进行代码签名。

快车道的健身房长这样:

gym(
      scheme: IOS_SCHEME,
      workspace: IOS_WORKSPACE,
      export_method: EXPORT_METHOD[releaseType],
      export_xcargs: '-allowProvisioningUpdates',
      export_options: 
        'signingStyle': 'automatic',
        'compileBitcode': false
      
    )

几个月后,构建突然开始失败,错误代码为 65。 这是构建失败消息:

[33m▸[0m [39;1mProcessing[0m Info.plist
[33m▸[0m [39;1mGenerating 'App.app.dSYM'[0m
[33m▸[0m [39;1mRunning script[0m '[CP] Embed Pods Frameworks'
** ARCHIVE FAILED **


The following build commands failed:
PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks /Users/iosbuild/Library/Developer/Xcode/DerivedData/App-fdavtmgcrorkxicfvghtsxxtwfeo/Build/Intermediates.noindex/ArchiveIntermediates/App/IntermediateBuildFilesPath/App.build/Release-iphoneos/App.build/Script-9592DBEFFC6D2A0C8D5DEB22.sh
(1 failure)
[09:28:20]: [31mExit status: 65[0m

+---------------+-------------------------+
|            [32m[33mBuild environment[0m            |
+---------------+-------------------------+
| xcode_path    | /Applications/Xcode.app |
| gym_version   | 2.105.2                 |
| export_method | enterprise              |
| SDK           | iPhoneOS11.4.SDK        |
+---------------+-------------------------+

[09:28:20]: ▸ [35mtotal size is 10252820  speedup is 1.00[0m
[09:28:20]: ▸ [35mCode Signing /Users/iosbuild/Library/Developer/Xcode/DerivedData/App-fdavtmgcrorkxicfvghtsxxtwfeo/Build/Intermediates.noindex/ArchiveIntermediates/App/InstallationBuildProductsLocation/Applications//App.app/Frameworks/Capacitor.framework with Identity iPhone Developer: XXXX XXXX (XXXXXXXXX)[0m
[09:28:20]: ▸ [35m/usr/bin/codesign --force --sign <[Some alphanumeric text]>  --preserve-metadata=identifier,entitlements '/Users/iosbuild/Library/Developer/Xcode/DerivedData/App-fdavtmgcrorkxicfvghtsxxtwfeo/Build/Intermediates.noindex/ArchiveIntermediates/App/InstallationBuildProductsLocation/Applications//App.app/Frameworks/Capacitor.framework'[0m
[09:28:20]: ▸ [35m/Users/iosbuild/Library/Developer/Xcode/DerivedData/App-fdavtmgcrorkxicfvghtsxxtwfeo/Build/Intermediates.noindex/ArchiveIntermediates/App/InstallationBuildProductsLocation/Applications//App.app/Frameworks/Capacitor.framework: errSecInternalComponent[0m
[09:28:20]: ▸ [35mCommand /bin/sh failed with exit code 1[0m

经过大量的谷歌搜索,已经尝试了许多解决方案,但是失败..!! 以下解决方案已尝试:

钥匙链解锁和锁定。 检查有效证书并删除过期证书。 将钥匙串密码设置为分区列表。 重启 Mac。 重复的钥匙串条目管理 将 post_install 添加到 pod 文件。为 pod 框架禁用代码签名 pod install 使用快车道。 已清除派生数据目录和模块文件夹。

Podfile 如下所示:

platform :ios, '11.0'
use_frameworks!

# workaround to avoid Xcode 10 caching of Pods that requires
# Product -> Clean Build Folder after new Cordova plugins installed
# Requires CocoaPods 1.6 or newer
install! 'cocoapods', :disable_input_output_paths => true

def capacitor_pods
  # Automatic Capacitor Pod dependencies, do not delete
  pod 'Capacitor', :path => '../../node_modules/@capacitor/ios'
  pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'
  pod 'CordovaPluginsStatic', :path => '../capacitor-cordova-ios-plugins'
  # Do not delete
end

target 'App' do
  capacitor_pods
  # Add your Pods here
end

Mac-mini 的 Cocoapods 版本是 1.7.4

这里的第一个问题是,Xcode 版本需要更新到 10 吗?

第二个问题,fastlane 版本重要吗?当前使用的 fastlane 版本是:2.105.2

如何解决存档失败的问题?所需的证书均已正确安装。几天以来一直在尝试,但仍然停留在这里。

任何帮助将不胜感激!

【问题讨论】:

在运行存档步骤的机器上,您是否有重复(尽管有效)签名证书? 尝试在运行存档步骤的机器上运行$ security find-identity -v -p codesigning。如果您看到重复的证书(即使它们是有效的),安全 API 将默默地失败此步骤,因为它无法判断要使用哪个重复的有效证书。不过,这只是一种预感。 我很确定这是一个代码签名问题,可能与fastlaneXcode 或您选择的技术完全无关。 @Aaron 感谢您的回复。是的,我试过这个命令,它没有任何重复的证书,而且我拥有的证书是有效的并且没有过期。 【参考方案1】:

Capacitor 需要 Xcode 10 或更高版本,因为最新版本使用 Swift 4.2,而 Xcode 9 上没有此功能

【讨论】:

感谢您的回答。是的,我已将我的 Xcode 更新为 10,并且项目构建成功。

以上是关于xcodebuild:离子电容器应用程序中的命令失败,退出代码为 65的主要内容,如果未能解决你的问题,请参考以下文章

无法完成离子电容器添加android命令

无法将离子与电容器集成,npm 抛出错误

如何将离子存储与电容器一起使用?

从 XCode 构建时的离子电容器(角)空白页 ios

离子电容器版本号

离子电容器构建找不到符号 android.support.v4.app.ActivityCompat