UNPKG

react-native-integrate

Version:

Automate integration of additional code into React Native projects

43 lines (42 loc) 2.06 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.importIosDisplayName = importIosDisplayName; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const picocolors_1 = __importDefault(require("picocolors")); const simple_plist_1 = __importDefault(require("simple-plist")); const constants_1 = require("../../../constants"); const prompter_1 = require("../../../prompter"); const getIosProjectPath_1 = require("../../getIosProjectPath"); const getProjectPath_1 = require("../../getProjectPath"); function importIosDisplayName(projectPath) { try { const target = (0, getIosProjectPath_1.getIosProjectName)(projectPath); const plistPath = path_1.default.join(projectPath, 'ios', target, constants_1.Constants.PLIST_FILE_NAME); const content = simple_plist_1.default.parse(fs_1.default.readFileSync(plistPath, 'utf-8')); const displayName = content.CFBundleDisplayName; if (!displayName) return null; return { id: 'iosDisplayName', title: 'Ios Display Name', value: displayName, apply: () => setIosDisplayName(displayName), }; } catch (_e) { return null; } } async function setIosDisplayName(name) { const target = (0, getIosProjectPath_1.getIosProjectName)(); const plistPath = path_1.default.join((0, getProjectPath_1.getProjectPath)(), 'ios', target, constants_1.Constants.PLIST_FILE_NAME); const content = simple_plist_1.default.parse(fs_1.default.readFileSync(plistPath, 'utf-8')); content.CFBundleDisplayName = name; fs_1.default.writeFileSync(plistPath, simple_plist_1.default.stringify(content), 'utf-8'); (0, prompter_1.logMessage)(`changed ${picocolors_1.default.yellow('CFBundleDisplayName')} to ${picocolors_1.default.yellow(name)}`); return Promise.resolve(); }