Azure Pipelines 作业卡在构建 iOS 版本的 React Native 应用程序

Posted

技术标签:

【中文标题】Azure Pipelines 作业卡在构建 iOS 版本的 React Native 应用程序【英文标题】:Azure Pipelines job stuck building iOS version of React Native app 【发布时间】:2019-07-29 08:47:15 【问题描述】:

我正在尝试使用 Azure Pipelines 构建一个 ios 版本的 React Native 应用程序。我正在使用 fastlane 的操作 build_ios_app 运行构建。

它在我的本地机器上运行得很好,但它卡在 Azure 上,输出如下:

[08:32:21]: ‌▸‌ ‌Compiling‌ LaunchScreen.xib‌
[08:32:25]: ‌▸‌ ‌Processing‌ Info.plist‌
[08:32:25]: ‌▸‌ ‌Running script‌: Bundle React Native code and images
‌[08:32:32]: ▸ ‌the transform cache was reset.‌

这通常是在新的终端窗口中打开打包程序的步骤。

在我的本地机器上,这一步的输出看起来有点不同:

[11:38:15]: ▸ Processing Info.plist
[11:38:15]: ▸ Running script 'Bundle React Native code and images'
[11:38:15]: ▸ Touching Demo.app (in target: Demo)
[11:38:16]: ▸ Archive Succeeded

没有 ‌the transform cache was reset.‌ 表示节点在 Azure 上的某个时间点内存不足?

手动捆绑应用(通过react-native bundle ...)可以正常工作。

更新:增加可用于 nodejs 任务的内存(在 NODE_OPTIONS 环境变量中设置 --max-old-space-size=8096)会使作业(至少)失败并显示以下错误消息:

2019-07-29T09:58:04.6108820Z error: File /Users/vsts/Library/Developer/Xcode/DerivedData/Demo-algdypqdcfcqirejrjxxgvqsmfdv/Build/Intermediates.noindex/ArchiveIntermediates/Demo/BuildProductsPath/Release-iphoneos/Demo.app/main.jsbundle does not exist. This must be a bug with[0m

2019-07-29T09:58:04.6109130Z 
2019-07-29T09:58:04.6109180Z 
2019-07-29T09:58:04.6109640Z [33m▸[0m [39;1mGenerating 'Demo.app.dSYM'[0m
2019-07-29T09:58:04.6109740Z ** ARCHIVE FAILED **
2019-07-29T09:58:04.6109810Z 
2019-07-29T09:58:04.6109850Z 
2019-07-29T09:58:04.6109930Z The following build commands failed:
2019-07-29T09:58:04.6111020Z PhaseScriptExecution Bundle\ React\ Native\ code\ and\ images /Users/vsts/Library/Developer/Xcode/DerivedData/Demo-algdypqdcfcqirejrjxxgvqsmfdv/Build/Intermediates.noindex/ArchiveIntermediates/Demo/IntermediateBuildFilesPath/Demo.build/Release-iphoneos/Demo.build/Script-00DD1BFF1BD5951E006B06BC.sh
2019-07-29T09:58:04.6111240Z (1 failure)

有什么办法解决这个问题吗?

【问题讨论】:

【参考方案1】:

我在本地机器上遇到了同样的问题,解决方案是更新到最新版本的node js

我猜你的 CI 环境应该是自包含的,所以版本冲突应该不是问题。但是你可能在不知不觉中将 fastlane 更新为与 Azure 服务器上的节点不兼容的版本。

【讨论】:

以上是关于Azure Pipelines 作业卡在构建 iOS 版本的 React Native 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Blazor 范围内的 CSS 未在 Azure Pipelines 上构建

如何在 Azure Pipelines YAML 构建定义中接收修订

如何使用 Azure Key Vault 中的证书/密钥对使用 Azure Pipelines 构建的代码进行签名?

如何在 Azure DevOps Pipelines 上指定 Android SDK 构建工具版本

在 Azure Pipelines 上构建 .NET Core 3.0

NG 构建在 Azure Pipelines 中失败,并出现 NPM 错误 134