Man lässt die Versionsnummer in den iOS und Android Projekten unangetastet.
Die Versionsnummer wird nur in der package.json version
geupdated.
Das Deployment der App sollte nur über den Continious Integration Server passieren.
Dieser liest in seinem fastfile die Versionsnummer aus der package.json und setzt sie in den jeweiligen Projects:
iOS:
fastfile
package_json = load_json(json_path: "../package.json")
increment_version_number(
version_number: package_json['version']
)
increment_build_number(build_number: ENV['CI_JOB_ID'])
Android:
fastfile
package_json = load_json(json_path: "../package.json")
gradle(
task: "assembleStagingRelease",
properties: {
'versionName' => package_json["version"],
'versionCode' => ENV['CI_JOB_ID'].to_i
}
)
build.gradle
...
versionCode project.hasProperty('versionCode') ? project.property('versionCode') as int : 1
versionName project.hasProperty('versionName') ? project.property('versionName') : "1.0.0"
...
Die Build Number wird durch auf die Gitlab job number gesetzt.
Die Version in der package.json kann man sehr einfach auf der commandline updaten:
npm:
#Mögliche Aufrufe:
# Macht aus 1.0.0 -> 1.0.1
npm version patch
# Macht aus 1.0.0 -> 1.1.0
npm version minor
# Macht aus 1.0.0 -> 2.0.0
npm version major
# Macht aus 1.0.0 -> 1.2.3
npm version 1.2.3
yarn:
yarn --version patch
yarn --version minor
yarn --version major
yarn --version 1.2.3
Sowohl npm als auch yarn machen einen GIT commit und Tag mit der neuen Versionsnummer.
Posted by Michael Kugler to Appdafuer (2018-09-13 13:23)