react-native-version-update
Version:
Change Android and iOS files before build
55 lines (38 loc) • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.setVersionIOS = void 0;
var _path = _interopRequireDefault(require("path"));
var _fs = _interopRequireDefault(require("fs"));
var _plist = _interopRequireDefault(require("plist"));
var _chalk = _interopRequireDefault(require("chalk"));
var _jsonfile = _interopRequireDefault(require("jsonfile"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const setVersionIOS = async (basePath, pkg) => {
const appPath = _path.default.resolve(basePath, 'app.json');
if (!_fs.default.existsSync(appPath)) return console.log(_chalk.default.red('app.json not found'));
const app = _jsonfile.default.readFileSync(appPath);
await changeInfoPList(_path.default.resolve(basePath, 'ios', app.name, 'Info.plist'), pkg);
await changeInfoPList(_path.default.resolve(basePath, 'ios', `${app.name}-tvOS`, 'Info.plist'), pkg);
await changeInfoPList(_path.default.resolve(basePath, 'ios', `${app.name}-tvOSTests`, 'Info.plist'), pkg);
await changeInfoPList(_path.default.resolve(basePath, 'ios', `${app.name}Tests`, 'Info.plist'), pkg);
await changeInfoPList(_path.default.resolve(basePath, 'ios', 'OneSignalNotificationServiceExtension', 'Info.plist'), pkg);
await changeInfoPList(_path.default.resolve(basePath, 'ios', 'ShareMenuExtension', 'Info.plist'), pkg);
};
exports.setVersionIOS = setVersionIOS;
const changeInfoPList = (caminhoArquivo, pkg) => {
if (!_fs.default.existsSync(caminhoArquivo)) return;
const infoPlist = _plist.default.parse(_fs.default.readFileSync(caminhoArquivo, 'utf8'));
infoPlist.CFBundleShortVersionString = pkg.version;
if (pkg.buildNumber) {
infoPlist.CFBundleVersion = String(pkg.buildNumber);
}
return new Promise((resolve, reject) => {
return _fs.default.writeFile(caminhoArquivo, _plist.default.build(infoPlist), err => {
if (err) reject(err);
console.log(_chalk.default.yellow(`File ${caminhoArquivo} changed`));
resolve();
});
});
};