首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure、DevOps、iOS和Android对Pod上的本地构建失败、安装和分级构建步骤做出反应

Azure、DevOps、iOS和Android对Pod上的本地构建失败、安装和分级构建步骤做出反应
EN

Stack Overflow用户
提问于 2022-03-01 13:24:03
回答 1查看 1K关注 0票数 5

我正试图在Azure中为iOS和android创建CI/CD管道,用于一个React本地应用程序。

使用android管道,无论我选择创建yaml还是使用经典编辑器并使用预先配置的android任务,构建任务(bundleRelease)上的管道总是失败。我收到的错误是:

代码语言:javascript
复制
FAILURE: Build failed with an exception.
  • 其中:设置文件'/home/vsts/work/1/s/app-rn/android/settings.gradle‘行: 12
  • 出了什么问题:评估设置“iEquos”时出现了问题。

无法读取脚本'/home/vsts/work/1/s/app-rn/node_modules/@react-native-community/cli-platform-android/native_modules.gradle‘,因为它不存在。

  • 尝试:使用--stacktrace选项运行以获得堆栈跟踪。使用--info或-调试选项运行以获得更多日志输出。用扫描来获得完整的洞察力。
  • https://help.gradle.org获得更多帮助

生成在12s错误中失败:进程'/home/vsts/work/1/s/app-rn/android/gradlew‘失败,退出代码1在(/home/vsts/work/_tasks/Gradle_8d8eebd8-2b94-4c97-85af-839254cc6da4/2.200.2/node_modules/azure-pipelines-task-lib/toolrunner.js:944:25) at ExecState.CheckComplete (/home/vsts/work/_tasks/Gradle_8d8eebd8-2b94-4c97-85af-839254cc6da4/2.200.2/node_modules/azure-pipelines-task-lib/toolrunner.js:927:18) at ChildProcess.(/home/vsts/work/_tasks/Gradle_8d8eebd8-2b94-4c97-85af-839254cc6da4/2.200.2/node_modules/azure-pipelines-task-lib/toolrunner.js:840:19) at ChildProcess.emit (events.js:198:13) at maybeClose (内部/child_process.js:982:16) at Process.ChildProcess._handle.onexit (内部/child_process.js:259:5) ##errorError: The process '/home/vsts/work/1/s/app-rn/android/gradlew‘失败,退出代码1完成: Gradle

这是android/setings.gradle中引用的行:

来自: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle");applyNativeModulesSettingsGradle(设置,"../")

节点模块文件夹位于'app-rn‘目录中,与"android“文件夹处于同一级别,所以只使用一个"../”是正确的吗?

我可以通过termianl或使用android在本地构建Android解决方案,所以我完全不知道为什么在DevOps中会出现这种情况。

我的iOS管道也出现了类似的问题。这一问题发生在可可豆时:

DevOps安装Cocoa错误

这是我的PodFile的图片,位于'iOS‘文件夹中。“iOS”文件夹与“节点-模块”位于同一级别,都位于文件夹‘app-rn’中:

Podfile

以下是用于android的yaml:

代码语言:javascript
复制
# Android
# Build your Android project with Gradle.
# Add steps that test, sign, and distribute the APK, save build artifacts, and more:
# https://learn.microsoft.com/azure/devops/pipelines/languages/android
variables:
  - group: DriverApp

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

name: $(date:yyyy).$(Month)$(rev:.r)

steps:

- script: yarn install

- task: Gradle@2
  inputs:
    gradleWrapperFile: 'app-rn/android/gradlew'
    workingDirectory: 'app-rn/android/'
    options: '-PversionName=$(Build.BuildNumber) -PversionCode=$(Build.BuildId)'
    tasks: 'bundleRelease'
    publishJUnitResults: false
    javaHomeOption: 'JDKVersion'
    gradleOptions: '-Xmx3072m'
    sonarQubeRunAnalysis: false

- task: AndroidSigning@3
  inputs:
    apkFiles: '**/*.aab'
    apksignerKeystoreFile: 'keystore.jks'
    apksignerKeystorePassword: '$(AndroidKeyStorePassword)'
    apksignerKeystoreAlias: '$(AndroidKeyAlias)'
    apksignerKeyPassword: '$(AndroidKeyAliasPassword)'
    zipalign: false

- task: PublishBuildArtifacts@1
  inputs:
    # PathtoPublish: 'android/app/build/outputs/apk/release'
    PathtoPublish: 'android/app/build/outputs/'
    ArtifactName: 'drop'
    publishLocation: 'Container'

iOS的yaml:

代码语言:javascript
复制
# trigger:
#   branches:
#     include:
#       - master
variables:
  - group: DriverApp
pool:
  vmImage: 'macos-latest'
steps:
  - checkout: self
    persistCredentials: true
    clean: true
  - task: NodeTool@0
    displayName: 'Install Node'
    inputs:
      versionSpec: '12.19.0' # you can use your desired version here
      # workingDirectory: 'app-rn/'
  - script: yarn install
    displayName: Install Dependencies
  - task: InstallAppleCertificate@2
    displayName: Install Apple Certificate
    inputs:
      certSecureFile: 'AppleDistributionCertificate.p12'
      certPwd: '$(AppleCertificatePassword)'
      keychain: 'temp'
      deleteCert: true
  - task: InstallAppleProvisioningProfile@1
    displayName: 'Install Apple Provisioning Profile'
    inputs:
      provisioningProfileLocation: 'secureFiles'
      provProfileSecureFile: 'iEquos_App_Store.mobileprovision'
      removeProfile: true
  - task: CocoaPods@0
    displayName: 'Install CocoaPods'
    inputs:
      workingDirectory: 'app-rn/ios'
  - task: Xcode@5
    displayName: 'Build IPA'
    inputs:
      actions: 'build'
      configuration: 'Release'
      sdk: 'iphoneos'
      xcWorkspacePath: 'app-rn/ios/iEquos.xcworkspace'
      scheme: 'iEquos'
      packageApp: true
      exportPath: 'output'
      signingOption: 'manual'
      signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
      provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
  - task: CopyFiles@2
    displayName: 'Copy IPA'
    inputs:
      contents: '**/*.ipa'
      targetFolder: '$(build.artifactStagingDirectory)'
      overWrite: true
      flattenFolders: true
  - task: PublishBuildArtifacts@1
    displayName: 'Publish IPA to artifacts'
    inputs:
      PathtoPublish: '$(build.artifactStagingDirectory)'
      ArtifactName: 'ios'
      publishLocation: 'Container'

我在堆栈溢出中搜索过类似的问题,但似乎只有在本地( nto ) DevOps中才会遇到这些问题。正如我前面提到的,我可以在本地构建安卓和iOS应用程序。

我是相当新的张贴堆栈溢出,所以请告诉我,如果我应该提供更多的信息。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2022-06-23 05:34:39

您在azure-pipelines.yml文件中尝试过这样的方法吗:

代码语言:javascript
复制
- script: /usr/local/bin/pod deintegrate
  workingDirectory: 'app-rn/ios'
  displayName: 'pod deintegrate'

- script: /usr/local/bin/pod install
  workingDirectory: 'app-rn/ios'
  displayName: 'pod install'

包括:

代码语言:javascript
复制
- task: CocoaPods@0
  displayName: 'Install CocoaPods'
  inputs:
    workingDirectory: 'app-rn/ios'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71309155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档