【问题标题】:Is it possible to create an apk in Ionic 4 - (React) via CLI only?是否可以仅通过 CLI 在 Ionic 4 - (React) 中创建 apk?
【发布时间】:2020-03-07 05:49:06
【问题描述】:

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

我可以使用 Ionic Capacitor 通过 Android-Studio 制作一个 apk,但我想纯粹使用 CLI 来生成相同的 apk。这可能吗?谢谢。

【问题讨论】:

    标签: reactjs android-studio ionic-framework ionic4 ionic-react


    【解决方案1】:

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

    首先 - 构建 Ionic 项目

    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 构建号而编写的自定义脚本。因为似乎没有其他解决方案适合我。

    我希望这对某人有所帮助,因为这是我自己解决的噩梦!

    【讨论】:

      【解决方案2】:

      因此,当您安装和配置适用于 Android 的 Ionic 时,您需要在此处遵循本指南: 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

      【讨论】:

      • 不幸的是,这个命令不适用于 Ionic-React 应用程序,抛出错误'[ERROR] Cordova is not supported for react projects'
      • 我明白了,所以你是在专门基于 React 的混合构建之后,是的,你是对的,现在你必须依赖特定的应用程序(Xcode 和 Studio)来进行构建等。见这里: capacitor.ionicframework.com/docs/basics/building-your-app
      • 目前,您必须依赖 Android Studio 或 X-code,专门用于 ionic react。可以将 cli 与 Android Studio 一起使用。见这里:developer.android.com/studio/build/building-cmdline
      猜你喜欢
      • 2017-11-06
      • 1970-01-01
      • 2020-12-11
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 2019-07-06
      • 2021-07-20
      • 2016-10-13
      相关资源
      最近更新 更多