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 将默默地失败此步骤,因为它无法判断要使用哪个重复的有效证书。不过,这只是一种预感。
我很确定这是一个代码签名问题,可能与fastlane
、Xcode
或您选择的技术完全无关。
@Aaron 感谢您的回复。是的,我试过这个命令,它没有任何重复的证书,而且我拥有的证书是有效的并且没有过期。
【参考方案1】:
Capacitor 需要 Xcode 10 或更高版本,因为最新版本使用 Swift 4.2,而 Xcode 9 上没有此功能
【讨论】:
感谢您的回答。是的,我已将我的 Xcode 更新为 10,并且项目构建成功。以上是关于xcodebuild:离子电容器应用程序中的命令失败,退出代码为 65的主要内容,如果未能解决你的问题,请参考以下文章