如何在Ionic应用程序中设置Android构建版本?
我有一个Ionic应用程序(v5/angular),我正在为Android开发。我正在尝试设置如何在Ionic应用程序中设置Android构建版本?,android,ionic-framework,capacitor,Android,Ionic Framework,Capacitor,我有一个Ionic应用程序(v5/angular),我正在为Android开发。我正在尝试设置config.xmlwidget属性,例如version和android versionCode,但是每次构建应用程序时,我的config.xml都会被覆盖。基于广泛的谷歌搜索,我认为应该有一些方法来设置我的包.json,以便它在我的config.xml中设置小部件属性,但我正在努力想办法 我的构建脚本是:ng build&&npx cap copy 生成的config.xml: 所需的config
config.xml
widget
属性,例如version
和android versionCode
,但是每次构建应用程序时,我的config.xml
都会被覆盖。基于广泛的谷歌搜索,我认为应该有一些方法来设置我的包.json
,以便它在我的config.xml
中设置小部件
属性,但我正在努力想办法
我的构建脚本是:ng build&&npx cap copy
生成的config.xml
:
所需的config.xml
:
Myionic.config.json
:
{
"name": "tutorial",
"integrations": {
"capacitor": {}
},
"type": "angular"
}
{
"appId": "com.me.app",
"appName": "Tutorial",
"bundledWebRuntime": false,
"npmClient": "npm",
"webDir": "www",
"plugins": {
"SplashScreen": {
"launchShowDuration": 0
}
},
"cordova": {}
}
{
"name": "tutorial",
"version": "0.0.1",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"build-mobile": "ng build && npx cap copy",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular-devkit/build-angular": "^0.803.24",
"@angular/common": "~8.2.14",
"@angular/core": "~8.2.14",
"@angular/forms": "~8.2.14",
"@angular/platform-browser": "~8.2.14",
"@angular/platform-browser-dynamic": "~8.2.14",
"@angular/router": "~8.2.14",
"@capacitor/android": "^2.4.0",
"@capacitor/core": "2.4.0",
"@capacitor/ios": "^2.4.0",
"@ionic-native/core": "^5.0.0",
"@ionic-native/geolocation": "^5.23.0",
"@ionic-native/splash-screen": "^5.0.0",
"@ionic-native/status-bar": "^5.0.0",
"@ionic/angular": "^5.0.0",
"@ionic/storage": "2.2.0",
"@microsoft/applicationinsights-web": "^2.5.6",
"@okta/okta-auth-js": "^3.0.0",
"@types/lodash": "^4.14.149",
"angular-oauth2-oidc": "^9.0.1",
"core-js": "^2.5.4",
"lodash": "^4.17.15",
"rxjs": "~6.5.1",
"tslib": "^1.9.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular/cli": "~8.3.23",
"@angular/compiler": "~8.2.14",
"@angular/compiler-cli": "~8.2.14",
"@angular/language-service": "~8.2.14",
"@capacitor/cli": "2.4.0",
"@ionic/angular-toolkit": "^2.1.1",
"@types/node": "~8.9.4",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.4.3"
},
"description": "An Ionic project"
}
Mycapactor.config.json
:
{
"name": "tutorial",
"integrations": {
"capacitor": {}
},
"type": "angular"
}
{
"appId": "com.me.app",
"appName": "Tutorial",
"bundledWebRuntime": false,
"npmClient": "npm",
"webDir": "www",
"plugins": {
"SplashScreen": {
"launchShowDuration": 0
}
},
"cordova": {}
}
{
"name": "tutorial",
"version": "0.0.1",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"build-mobile": "ng build && npx cap copy",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular-devkit/build-angular": "^0.803.24",
"@angular/common": "~8.2.14",
"@angular/core": "~8.2.14",
"@angular/forms": "~8.2.14",
"@angular/platform-browser": "~8.2.14",
"@angular/platform-browser-dynamic": "~8.2.14",
"@angular/router": "~8.2.14",
"@capacitor/android": "^2.4.0",
"@capacitor/core": "2.4.0",
"@capacitor/ios": "^2.4.0",
"@ionic-native/core": "^5.0.0",
"@ionic-native/geolocation": "^5.23.0",
"@ionic-native/splash-screen": "^5.0.0",
"@ionic-native/status-bar": "^5.0.0",
"@ionic/angular": "^5.0.0",
"@ionic/storage": "2.2.0",
"@microsoft/applicationinsights-web": "^2.5.6",
"@okta/okta-auth-js": "^3.0.0",
"@types/lodash": "^4.14.149",
"angular-oauth2-oidc": "^9.0.1",
"core-js": "^2.5.4",
"lodash": "^4.17.15",
"rxjs": "~6.5.1",
"tslib": "^1.9.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular/cli": "~8.3.23",
"@angular/compiler": "~8.2.14",
"@angular/compiler-cli": "~8.2.14",
"@angular/language-service": "~8.2.14",
"@capacitor/cli": "2.4.0",
"@ionic/angular-toolkit": "^2.1.1",
"@types/node": "~8.9.4",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.4.3"
},
"description": "An Ionic project"
}
Mypackage.json
:
{
"name": "tutorial",
"integrations": {
"capacitor": {}
},
"type": "angular"
}
{
"appId": "com.me.app",
"appName": "Tutorial",
"bundledWebRuntime": false,
"npmClient": "npm",
"webDir": "www",
"plugins": {
"SplashScreen": {
"launchShowDuration": 0
}
},
"cordova": {}
}
{
"name": "tutorial",
"version": "0.0.1",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"build-mobile": "ng build && npx cap copy",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular-devkit/build-angular": "^0.803.24",
"@angular/common": "~8.2.14",
"@angular/core": "~8.2.14",
"@angular/forms": "~8.2.14",
"@angular/platform-browser": "~8.2.14",
"@angular/platform-browser-dynamic": "~8.2.14",
"@angular/router": "~8.2.14",
"@capacitor/android": "^2.4.0",
"@capacitor/core": "2.4.0",
"@capacitor/ios": "^2.4.0",
"@ionic-native/core": "^5.0.0",
"@ionic-native/geolocation": "^5.23.0",
"@ionic-native/splash-screen": "^5.0.0",
"@ionic-native/status-bar": "^5.0.0",
"@ionic/angular": "^5.0.0",
"@ionic/storage": "2.2.0",
"@microsoft/applicationinsights-web": "^2.5.6",
"@okta/okta-auth-js": "^3.0.0",
"@types/lodash": "^4.14.149",
"angular-oauth2-oidc": "^9.0.1",
"core-js": "^2.5.4",
"lodash": "^4.17.15",
"rxjs": "~6.5.1",
"tslib": "^1.9.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular/cli": "~8.3.23",
"@angular/compiler": "~8.2.14",
"@angular/compiler-cli": "~8.2.14",
"@angular/language-service": "~8.2.14",
"@capacitor/cli": "2.4.0",
"@ionic/angular-toolkit": "^2.1.1",
"@types/node": "~8.9.4",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.4.3"
},
"description": "An Ionic project"
}
据我所知,生成的
config.xml
实际上没有用于电容器构建,版本和构建号实际上是在build.gradle
中设置的:
apply plugin: 'com.android.application'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
applicationId "com.me.app"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 2
versionName "2.0.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
...