Azure DevOps 管道中的 Carthage 复制框架失败
Posted
技术标签:
【中文标题】Azure DevOps 管道中的 Carthage 复制框架失败【英文标题】:Carthage copy-frameworks fails in Azure DevOps pipeline 【发布时间】:2020-03-06 18:40:48 【问题描述】:我的项目使用 Carthage 并在本地成功构建,但是当我尝试在 Microsoft 托管代理上使用 Azure DevOps 管道构建它时,我收到此错误:
以下构建命令失败:
PhaseScriptExecution Carthage\ Copy\ Frameworks /Users/runner/Library/Developer/Xcode/DerivedData/My-Scheme-euhffgcbmkrrcmfffhaqpabtlubp/Build/Intermediates.noindex/My-Scheme.build/Release-iphoneos/My-Scheme.build/脚本-DB5433C1239AF75F00C0B252.sh (1 次失败)
[error] 错误:/usr/bin/xcodebuild 失败,返回码:65
这是我的 Carthage Copy Frameworks 构建阶段:
/usr/local/bin/carthage copy-frameworks
我的猜测是 Azure 机器的配置有所不同,但我不知道要修复什么或如何修复它。
我也遇到了这个错误:
❌ 致命错误:/Applications/Xcode_10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo:输入文件:/Users/runner/Library/Developer/Xcode/DerivedData/My- Scheme-euhffgcbmkrrcmfffhaqpabtlubp/Build/Products/Release-iphoneos/Realm.framework.dSYM/Contents/Resources/DWARF/Realm 自打开后已更改(未定义错误:0)
【问题讨论】:
您可以尝试将azure管道中xcode任务的sdk
和xcodeVersion
设置为与本地机器相同吗?
【参考方案1】:
即使 Carthage 在本地没有引起任何问题,如果您的方案构建了多个运行 carthage copy-frameworks
命令的目标,代理机器可能会抛出类似上述错误:Realm changed since opened (Undefined error: 0)
。
似乎正在同时访问相同的文件,因为正在并行构建多个目标。就我而言,carthage copy-frameworks
正在为我的应用程序目标和测试目标运行。解决此问题的方法是让您的方案仅构建应用目标:
Product > Scheme > Edit Scheme > Build (n targets) > Target to Remove > Select -
【讨论】:
以上是关于Azure DevOps 管道中的 Carthage 复制框架失败的主要内容,如果未能解决你的问题,请参考以下文章
Azure DevOps 管道中的 Carthage 复制框架失败
Azure Databricks 的 Azure DevOps 管道
.nuspec 文件中的 Azure DevOps 管道变量
如何在 yaml 中处理 Azure DevOps 管道中的错误?