Syncing version from package.json to target platform in the capacitor projects.
本 fork 额外对 Capacitor 项目目录自定义进行了支持,将会读取项目目录下的 capacitor.config.json
文件(或 capacitor.config.ts
文件)中对应的自定义目录配置。
Currently supported platforms are: [android, ios]
.
npm add --save-dev capacitor-sync-version
Step 1. Create a file named app.properties
in ./android/app/
, then add the following properties:
versionName=0.0.1
versionCode=1
These properties will be updated when capacitor-sync-version running.
Step 2. Adjust codes to referrence these properties in ./android/app/build.gradle
.
-
Add the following codes after
apply plugin: 'com.android.application'
:def appProperties = new Properties(); file("app.properties").withInputStream { appProperties.load(it) }
-
Update properties in
defaultConfig {}
block:defaultConfig { versionCode appProperties.getProperty("versionCode").toInteger() versionName appProperties.getProperty("versionName") }
本 fork 支持了对 Settings.bundle 中的版本号的同步。如有需要请自行添加 Settings.bundle 文件夹到 iOS 项目中,添加于 App 目录下即可。
在 ./ios/App/
目录下创建 Settings.bundle
文件夹,然后在 Settings.bundle
文件夹下创建 Root.plist
文件,内容需要包含一个 Key 值为 version
的 String 类型的 Item。
PS: 不一定必须是 Title 类型,本项目只会修改 Key 为 version
的 String 类型的 Item 的 Value 值。
<dict>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
<key>Title</key>
<string>版本</string>
<!-- 需要包含这部分内容 -->
<key>Key</key>
<string>version</string>
<key>DefaultValue</key>
<string>3.0.0</string>
<!-- End -->
<key>IsSecure</key>
<false/>
<key>KeyboardType</key>
<string>Alphabet</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
</dict>
The simplest way to use capacitor-sync-version is running it in the capacitor hooks.
Just adding the following script to package.json
:
{
"scripts": {
"capacitor:copy:before": "capacitor-sync-version"
}
}
In this way, capacitor-sync-version will be run before capacitor copy command, e.g., npx cap copy
.
Other ways to run capacitor-sync-version are:
# sync for android only
capacitor-sync-version android
# sync for both android and ios
capacitor-sync-version android ios
MIT