是否可以仅通过 CLI 在 Ionic 4(React)中创建 apk?
Is it possible to create an apk in Ionic 4 - (React) via CLI only?
我想为 Ionic-React 应用程序生成一个 apk,只使用命令行。
我可以使用 Ionic Capacitor 通过 Android-Studio 制作 apk,但我想纯粹使用 CLI 来生成相同的 apk。这可能吗?谢谢。
因此,当您为 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
我已经解决了这个问题,现在我可以在 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 构建号。因为似乎没有其他解决方案对我有用。
我希望这对某人有所帮助,因为这是我自己弄清楚的噩梦!
我想为 Ionic-React 应用程序生成一个 apk,只使用命令行。
我可以使用 Ionic Capacitor 通过 Android-Studio 制作 apk,但我想纯粹使用 CLI 来生成相同的 apk。这可能吗?谢谢。
因此,当您为 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
我已经解决了这个问题,现在我可以在 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 构建号。因为似乎没有其他解决方案对我有用。
我希望这对某人有所帮助,因为这是我自己弄清楚的噩梦!