当前位置: 首页 > 知识库问答 >
问题:

Azure devops无法发布Apk android

邵子平
2023-03-14

azure DevOps新手,尝试在示例android应用程序上设置ci/cd进行测试。我有以下azure-pipelines.yml

    trigger:
- master

pool: default
variables:
  - name: 'apkFilePath'
    value: '**/*debug*.apk'

steps:
- task: Gradle@2
  inputs:
    workingDirectory: ''
    gradleWrapperFile: 'gradlew'
    gradleOptions: '-Xmx3072m'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'
    tasks: 'assembleDebug'
- task: CopyFiles@2
  displayName: "Copy files"
  continueOnError: false
  inputs:
    Contents: ${apkFilePath}
    targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  continueOnError: false
  displayName: "Publish to azure"
  inputs:
     PathtoPublish: '$(Build.ArtifactStagingDirectory)'
     ArtifactName:   'debug'

当我运行管道时,在publishBuildArtifacts步骤##[warning]Directory中,“/Users/XXXX/Desktop/myagent/_work/2/a”为空。不会向生成项目“debug”添加任何内容。

我猜文件没有被复制到“$(Build.ArtifactStagingDirectory)”,但我不知道为什么?

任何帮助都将不胜感激

共有1个答案

齐夕
2023-03-14

我没有在yaml文件中发现任何错误。您收到的错误一定是由于apk文件路径。如果查看 Microsoft 的“复制文件任务”文档,您会发现“内容”是作为副本的一部分包含的必需文件路径,并且它支持多行匹配模式,如下所示。

  • *复制指定源文件夹中的所有文件。
  • **复制指定源文件夹中的所有文件和所有子文件夹中的所有文件。
  • **\bin\**从任何bin文件夹递归复制所有文件。

请记住,该模式仅用于匹配文件路径,而不是文件夹路径。尝试下面的yaml片段来复制。apk文件从源文件复制到工件目录。

- task: CopyFiles@2
  displayName: 'Copy Files'
  inputs:
    SourceFolder: 'MobileApp/SourceCode -Android' 
    Contents: '**/*.apk'
    TargetFolder: '$(build.artifactStagingDirectory)'

或者

- task: CopyFiles@2
- displayName: 'Copy Files'
  inputs:
    SourceFolder: $(Build.SourcesDirectory) //optional
    contents: '**/*.debug.apk'
    targetFolder: '$(build.artifactStagingDirectory)'

SourceFolder是包含要复制的文件的文件夹。如果将其留空,则从repo的根文件夹进行复制(与指定$(Build.SourcesDirectory)相同。

有关详细信息,请查看这些使用Azure DevOps构建Android移动应用程序以及如何使用Azure DevOps构建和签署Android应用程序文档。还要检查堆栈溢出中发布的类似问题以获得更多理解。

 类似资料:
  • 我有ASP.NETCore C#web应用程序。我做了一些现在使用C#7.1功能的更改。我更改了项目版本,因此它可以编译和运行。但是,当我尝试发布项目时,我收到了一个错误: C# 7.0中没有“默认文本”功能。请使用语言版本7.1或更高版本。 我看到的编译命令是: 正如其他地方建议的那样,我安装了(v2.6.1),但没有任何区别。 是否有专门影响发布的 Visual Studio 设置? 更新:看

  • 我无法登录到已发布的apk,但调试apk工作正常。谷歌服务。发布的apk缺少json文件,我不知道为什么会这样。请有人帮我解决这个问题。下面我列出了我的应用程序级依赖项。 项目级依赖项 我得到这个错误请任何人帮帮我。

  • 问题内容: 使用express 3.1.0,我有一个非常简单的形式: 并在app.js中: 尝试发布此表单时,我得到: 并在控制台中: 我在这里想念什么? 问题答案: 您的示例对我有用。我删除了对用户,用户和路由的引用,以便可以运行它,并且HTTP POST已接收并正确显示在控制台中。 我怀疑该错误是在您的User.addUser()代码中。

  • 问题内容: 我们已经编写了一个Java客户端,用于将消息发布到kafka。代码如下所示 当我们执行此代码时,我们得到以下消息和异常 这发生在无限循环中,并且应用程序挂起…当我们检查kafka代理时,发现该主题已创建…但是我们没有收到消息…我们已经坚持了一段时间。 .. 请帮忙 问题答案: 我们终于解决了这个问题…我们在混合环境中运行kafka,如下文所述- https://medium.com/@

  • 我想为iOS和Android构建Flutter的发布应用程序,一切都很好,并且在开发和iOS IPA版本上运行得很好,但不适用于Android 我尽量 flutter构建appbundle 但我有个问题 任务配置中发现问题:app:uploadCrashlyticsMappingFileRelease(类型为“UploadMappingFileTask”)。 为属性“googleServicesF

  • 背景:我正在尝试迁移项目,以使用新的、升级的nexus实例,而不是旧的。Gradle项目和Maven项目进展顺利,但Grails项目进展并不顺利。 问题:发布和单独发布无法发布到新的nexus。快照发布工作正常。在旧的nexus中,快照和发布都工作得很好,我之前提到的使用相同用户凭据的Maven和Gradle项目也工作得很好。 错误如下 POM生成: /var/atlassian/applicat