[英]How can I set the Android build version in an Ionic app?
我有一個 Ionic 應用程序(v5/angular),我正在為 Android 構建它。 我正在嘗試設置config.xml
widget
屬性,例如version
和android-versionCode
,但是每次構建應用程序時都會覆蓋我的config.xml
。 基於廣泛的谷歌搜索,我認為應該有一些方法來設置我的package.json
以便它在我的config.xml
中設置widget
屬性,但要弄清楚如何做到這一點。
我的構建腳本是: ng build && npx cap copy
生成config.xml
:
<?xml version='1.0' encoding='utf-8'?>
<widget version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<access origin="*" />
</widget>
所需config.xml
:
<?xml version='1.0' encoding='utf-8'?>
<widget
version="2.0.0"
android-versionCode="2"
xmlns="http://www.w3.org/ns/widgets"
xmlns:cdv="http://cordova.apache.org/ns/1.0">
<access origin="*" />
</widget>
我的ionic.config.json
:
{
"name": "tutorial",
"integrations": {
"capacitor": {}
},
"type": "angular"
}
我的capacitor.config.json
:
{
"appId": "com.me.app",
"appName": "Tutorial",
"bundledWebRuntime": false,
"npmClient": "npm",
"webDir": "www",
"plugins": {
"SplashScreen": {
"launchShowDuration": 0
}
},
"cordova": {}
}
我的package.json
:
{
"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
實際上並沒有與 Capacitor 構建一起使用,版本和構建號實際上是在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'
}
}
}
...
我將提供可能是新信息來幫助這樣的場景。 VS Code 的最新 Ionic 擴展有一個選項可以輕松更新應用程序的版本。 一旦你使用它,它將自動更新 iOS 和 Android 的幾個位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.