簡體   English   中英

Azure DevOps CI 構建成功后崩潰

[英]Crash after Azure DevOps CI build succeeded

我為我的 React-Native 項目創建了一個 Azure DevOps 持續集成管道。 我的 Yaml 如下:

pool:
  name: Azure Pipelines
  demands: yarn

steps:
- task: NodeTool@0
  displayName: 'Use Node 10.x'
  inputs:
    versionSpec: 10.x

- task: geeklearningio.gl-vsts-tasks-yarn.yarn-task.Yarn@3
  displayName: 'Install NPM modules'

- task: Bash@3
  displayName: 'clean '
  inputs:
    targetType: filePath
    filePath: ./android/gradlew
    arguments: clean
    workingDirectory: android

- task: Bash@3
  displayName: 'assembleRelease '
  inputs:
    targetType: filePath
    filePath: ./android/gradlew
    arguments: 'assembleRelease -x bundleReleaseJsAndAssets'
    workingDirectory: android

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'
  inputs:
    PathtoPublish: android/app/build/outputs/apk/release

構建成功,但問題是 APK 總是在設備上崩潰,但是當我手動構建 APK 時它不會崩潰。

任何人都可以幫助我嗎?

我看到您沒有指定代理 vmImage 來構建您的 apk。 您應該在pool下指定vmImage以讓您的 apk 構建在所需的操作系統上。 由於本地構建的 apk 工作正常。 您可以指定與本地計算機相同的代理 vmImage。

pool:
  vmImage: windows-latest #or ubuntu-latest if your local machine is linux.

您可以嘗試使用gradle 任務來構建您的 apk,而不是使用 bash 任務。 未簽名的 APK 只能在模擬器中運行。 APK 必須經過簽名才能在設備上運行。 所以在你的 apk 生成之后。 您需要使用Android 簽名任務在 azure 管道中對您的 apk 進行簽名。

請查看詳細教程以獲取更多信息。

以防jdk版本的差異導致問題。 您可以通過檢查構建任務日志,將本地使用的 Jdk 版本與其在管道上使用的 jdk 版本進行比較。 並通過設置gradle任務的JDK version字段,確保azure管道中使用的jdk版本與您本地的jdk版本相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM