Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ionic应用程序中设置Android构建版本?_Android_Ionic Framework_Capacitor - Fatal编程技术网

如何在Ionic应用程序中设置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

我有一个Ionic应用程序(v5/angular),我正在为Android开发。我正在尝试设置
config.xml
widget
属性,例如
version
android versionCode
,但是每次构建应用程序时,我的
config.xml
都会被覆盖。基于广泛的谷歌搜索,我认为应该有一些方法来设置我的
包.json
,以便它在我的
config.xml
中设置
小部件
属性,但我正在努力想办法

我的构建脚本是:
ng build&&npx cap copy

生成的
config.xml


所需的
config.xml


My
ionic.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"
}
My
capactor.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"
}
My
package.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'
        }
    }
}

...