Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fs = require('fs');
- const path = require('path');
- const pkg = require('./package');
- const convert = require('xml-js');
- const beautify = require('xml-beautifier');
- const plist = require('plist');
- updateIOSPList();
- updateAndroidManifest();
- /**
- * Update iOS PList file with new version
- */
- function updateIOSPList() {
- const iosPListPath = path.resolve('./app/App_Resources/iOS/Info.plist');
- let iosPListFile = fs.readFileSync(iosPListPath, { encoding: 'utf-8' }).toString();
- if(!iosPListFile) {
- throw new Error("Could not update iOS Plist file");
- }
- let iosPList = plist.parse(iosPListFile);
- iosPList.CFBundleShortVersionString = pkg.version;
- iosPList.CFBundleVersion = pkg.version;
- const newIOSPList = plist.build(iosPList);
- fs.writeFileSync(iosPListPath, newIOSPList, 'utf8');
- }
- /**
- * Update Android Manifest with new version
- */
- function updateAndroidManifest() {
- const androidManifestPath = path.resolve('./app/App_Resources/Android/src/main/AndroidManifest.xml');
- let androidManifest = fs.readFileSync(androidManifestPath, { encoding: 'utf-8' }).toString();
- let androidManifestXml = convert.xml2js(androidManifest, {
- object: true,
- reversible: true,
- coerce: false,
- sanitize: false,
- trim: false,
- arrayNotation: false,
- alternateTextNode: false
- });
- if(!androidManifestXml.elements[0].attributes['android:versionCode'] && !androidManifestXml.elements[0].attributes['android:versionName']) {
- throw new Error("Could not update Android Manifest");
- }
- androidManifestXml.elements[0].attributes['android:versionCode'] = pkg.version.replace(/\./g, '') + '000';
- androidManifestXml.elements[0].attributes['android:versionName'] = pkg.version;
- const newAndroidManifest = convert.js2xml(androidManifestXml);
- fs.writeFileSync(androidManifestPath, beautify(newAndroidManifest), 'utf8');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement