UNPKG

@applicaster/zapplicaster-cli

Version:

CLI Tool for the zapp app and Quick Brick project

55 lines (43 loc) 1.51 kB
const { resolve } = require("path"); const { runInShellAsync } = require("../../shell"); const logger = require("../../logger"); const { getApplicasterConfig, getPlatform } = require("../../settings"); async function buildApple({ version_id }, platform) { const { zappApplePath } = getApplicasterConfig(); const appPath = platform === "ios" ? "ZappiOS" : "ZappTvOS"; if (zappApplePath) { await runInShellAsync(`zapptool -vi ${version_id} -rn localhost:8081 -pu`, { cwd: resolve(`${zappApplePath}/${appPath}`), }); } return true; } async function buildAndroid({ version_id }) { const { zappAndroidPath } = getApplicasterConfig(); if (zappAndroidPath) { await runInShellAsync( `react_native_packager_root="http://localhost:8081" bundle exec rake prepare_workspace VERSION=${version_id}`, // eslint-disable-line max-len { cwd: resolve(zappAndroidPath) } ); await runInShellAsync( "./gradlew assembleDebug -PREACT_NATIVE_PACKAGER_ROOT=localhost:8081", { cwd: resolve(zappAndroidPath) } ); } return true; } async function buildMobileApp(configuration) { logger.startStep("Building mobile app"); const { buildParams } = configuration; const platform = getPlatform(buildParams); switch (platform) { case "ios": case "tvos": return await buildApple(buildParams, platform); case "android": return await buildAndroid(buildParams); default: return true; } } module.exports = { buildMobileApp };