program .command('inc:build [project-dir]') .description('Increments the ios.buildNumber and android.versionCode in app.json') .action(act(async (dir) => { const projectManifest = await readBuildManifest(dir, null); const iosBuildNum = parseInteger(0, F.getOr(0, ['expo', 'ios', 'buildNumber'], projectManifest)); const androidVersionCode = F.getOr(0, ['expo', 'android', 'versionCode'], projectManifest); const newBuildNum = Math.max(iosBuildNum, androidVersionCode) + 1; const setObj = F.curry(set); const newManifest = F.compose( setObj(['expo', 'ios', 'buildNumber'], `${newBuildNum}`), setObj(['expo', 'android', 'versionCode'], newBuildNum) )(projectManifest); const manifestPath = buildManifestFilePathFromDir(dir); fs.writeFileSync(manifestPath, JSON.stringify(newManifest, null, 2)); return true; }));