Можно ли создать apk в Ionic 4 - (React) только через CLI?

Я хочу создать apk для приложения Ionic-React, только используя командную строку.

Я могу использовать Ionic Capacitor для создания apk через Android-Studio, но я хочу использовать только CLI для создания того же apk. Возможно ли это сделать? Спасибо.

2 ответа

Решение

С тех пор я решил эту проблему, и теперь я могу создать apk приложения Ionic React на Azure dev-ops, вообще не взаимодействуя со студией Android. Вот YAML -

Во-первых - создание ионного проекта

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

- 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. поскольку никакие другие решения, казалось, не работали для меня.

Я надеюсь, что это поможет кому-то, потому что это был кошмар, чтобы разобраться самостоятельно!

Поэтому при установке и настройке Ionic для Android вам необходимо следовать этому руководству здесь:https://ionicframework.com/docs/installation/android

Затем вы можете создавать свои гибридные приложения:https://ionicframework.com/docs/publishing/play-store

Для приложений, использующих Cordova, вам необходимо установить Android Studio и SDK, но вам не нужно использовать их напрямую, ionic CLI сделает это за вас, когда вы используете такие команды, как:

$ionic cordova build android --prod --release

Для приложений, использующих Capacitor, в настоящее время нет способа избежать использования Xcode или Studio:https://capacitor.ionicframework.com/docs/basics/building-your-app

Другие вопросы по тегам