[英]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.