问题描述
我有一个为Android开发的Ionic应用程序(v5 /角度)。我试图设置config.xml
widget
之类的属性,例如version
和android-versionCode
,但是每次构建应用程序时,我的config.xml
都会被覆盖。基于广泛的谷歌搜索,我认为应该有某种方法来设置我的package.json
,以便它在我的widget
中设置config.xml
属性,但是我一直在努力寻找方法做到这一点。
我的构建脚本是:ng build && npx cap copy
<?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'
}
}
}
...