首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以仅通过CLI在Ionic 4- (React)中创建apk?

是否可以仅通过CLI在Ionic 4- (React)中创建apk?
EN

Stack Overflow用户
提问于 2019-11-11 22:15:55
回答 2查看 1.6K关注 0票数 1

我只想使用命令行为Ionic-React应用程序生成一个apk。

我可以通过Android-Studio使用离子电容器来制作apk,但我想纯粹使用CLI来生成相同的apk。这有可能做到吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-07 22:24:29

我已经解决了这个问题,现在可以在Azure dev-ops上构建一个Ionic React应用程序apk,而无需与Android studio进行任何交互。这就是YAML -

首先-构建离子项目

代码语言:javascript
复制
trigger:
- master

variables:
  scheme: ''
  sdk: 'iphoneos'
  configuration: 'Release'
pool:
  vmImage: 'macos-latest'

steps:
- task: UseNode@1
  inputs:
    checkLatest: true
- task: Npm@1
  inputs:
    command: 'install'
- script: npm run citest
- task: Npm@1
  inputs:
    command: 'custom'
    customCommand: 'install -g ionic'
- task: CmdLine@2
  inputs:
    script: 'ionic build --prod'
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: 'build'
    ArtifactName: 'drop'
    publishLocation: 'Container'

其次-构建.apk

代码语言:javascript
复制
- task: CmdLine@2
  inputs:
    script: 'ionic capacitor add android'
- task: PythonScript@0
  inputs:
    scriptSource: 'filePath'
    scriptPath: 'changeGradle.py'
    arguments: '--version=$(Build.BuildId)'

- task: CopyFiles@2
  inputs:
    SourceFolder: 'resources/androidResources/res'
    Contents: '**'
    TargetFolder: 'android/app/src/main/res'
    OverWrite: true
- task: Gradle@2
  inputs:
    workingDirectory: 'android'
    gradleWrapperFile: 'android/gradlew'
    gradleOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.8'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: true
    testResultsFiles: '**/TEST-*.xml'
    tasks: 'build'
- task: AndroidSigning@3
  inputs:
    apkFiles: 'android/app/build/outputs/apk/release/*.apk'
    apksignerKeystoreFile: XXX.jks
    apksignerKeystorePassword: 'XXX'
    apksignerKeystoreAlias: 'XXX'
    apksignerKeyPassword: 'XXX'
    zipalign: true
- task: CopyFiles@2
  inputs:
    Contents: '**/*'
    TargetFolder: '$(build.artifactStagingDirectory)'
- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(Build.artifactStagingDirectory)'
    publishLocation: 'pipeline'

将.apk发布到Google Play内部跟踪是在Azure发布管道中处理的(而不是构建)。PythonScript命令是我编写的一个自定义脚本,用于更改Gradlew内部版本号。因为似乎没有其他解决方案对我有效。

我希望这能帮助一些人,因为这是一场噩梦,让我自己找出答案!

票数 1
EN

Stack Overflow用户

发布于 2019-11-11 23:35:52

因此,当您安装和配置Ionic for Android时,您需要遵循以下指南:https://ionicframework.com/docs/installation/android

然后,您可以构建您的混合应用程序:https://ionicframework.com/docs/publishing/play-store

对于使用Cordova的应用程序,您需要安装Android Studio和SDK,但您不必直接使用它们,当您使用以下命令时,ionic CLI将为您执行此操作:

代码语言:javascript
复制
$ionic cordova build android --prod --release

对于使用电容的应用程序,目前没有办法避免使用Xcode或Studio:https://capacitor.ionicframework.com/docs/basics/building-your-app

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58803086

复制
相关文章

相似问题

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