script/set-ios-version.js (23 lines of code) (raw):
const exec = require('child_process').exec;
const env = process.env;
const version = require('../package.json').version.split('-');
const BUILD_NUMBER = env.buildNumber || version[1] || 9999;
const VERSION_NUMBER = env.versionNumber || version[0] || 1;
if (!BUILD_NUMBER || !VERSION_NUMBER) {
// eslint-disable-next-line no-console
console.error('process.env', env);
throw new Error('`versionNumber` and `buildNumber` are required.');
}
// eslint-disable-next-line no-console
console.log(
(BUILD_NUMBER < 1 ? '\x1b[31m' : '\x1b[32m'),
`Update version and build number in Xcode project: Marketing = ${VERSION_NUMBER}, build number = ${BUILD_NUMBER}`,
'\x1b[0m'
);
exec(
`cd ios && agvtool new-marketing-version ${VERSION_NUMBER} && agvtool new-version -all ${BUILD_NUMBER}`,
function reporter(error, stdout) {
if (error) {
throw error;
}
// eslint-disable-next-line no-console
console.log(stdout);
}
);