Jor*_*rge 5 android gradle ios cocoapods azure-devops
我正在尝试在 Azure Devops 中为 React-Native 应用程序创建适用于 iOS 和 Android 的 CI/CD 管道。
使用 android 管道,无论我选择创建 yaml 还是使用经典编辑器并使用预配置的 android 任务,管道在构建任务 (bundleRelease) 上总是失败。我收到的错误是:
FAILURE: Build failed with an exception.
Run Code Online (Sandbox Code Playgroud)
其中:设置文件'/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 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。
在https://help.gradle.org获取更多帮助
在 12 秒内构建失败错误:进程“/home/vsts/work/1/s/app-rn/android/gradlew”在 ExecState._setResult 处失败,退出代码为 1 (/home/vsts/work/_tasks/Gradle_8d8eebd8-2b94 -4c97-85af-839254cc6da4/2.200.2/node_modules/azure-pipelines-task-lib/toolrunner.js:944:25) 在 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)在ChildProcess。(/home/vsts/work/_tasks/Gradle_8d8eebd8-2b94-4c97-85af-839254cc6da4/2.200.2/node_modules/azure-pipelines-task-lib/toolrunner.js:840:19)在ChildProcess.emit(events.js) :198:13) 在 MaybeClose (internal/child_process.js:982:16) 在 Process.ChildProcess._handle.onexit (internal/child_process.js:259:5) ##[error]错误:进程 '/home/ vsts/work/1/s/app-rn/android/gradlew' 失败,退出代码 1 整理:Gradle
这是 android/settings.gradle 中引用的行:
从以下位置申请: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(设置,“../”)
节点模块文件夹位于“app-rn”目录中,与“android”文件夹处于同一级别,因此仅使用一个“../”是正确的吗?
我可以通过 termianl 或使用 Android studio 在本地构建 Android 解决方案,所以我完全不知道为什么会在 DevOps 中发生这种情况。
我的 iOS 管道也出现了类似的问题。安装 Cocoa Pods 时出现此问题:
这是我的 PodFile 的图像,位于“iOS”文件夹中。“iOS”文件夹与“node-modules”位于同一级别,都位于文件夹“app-rn”内:
这是 Android 的 yaml:
# 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'
Run Code Online (Sandbox Code Playgroud)
iOS 的 yaml:
# 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'
Run Code Online (Sandbox Code Playgroud)
我在 stackoverflow 上搜索了类似的问题,但似乎只发现人们在本地(而不是 DevOps 内部)遇到这些问题。正如我之前提到的,我可以在本地构建 Android 和 iOS 应用程序。
我对在堆栈溢出上发帖还很陌生,所以请告诉我是否应该提供更多信息。
任何帮助将不胜感激。
您是否在azure-pipelines.yml文件中尝试过此操作:
- 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'
Run Code Online (Sandbox Code Playgroud)
插入:
- task: CocoaPods@0
displayName: 'Install CocoaPods'
inputs:
workingDirectory: 'app-rn/ios'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1489 次 |
| 最近记录: |