react-native-zoom-bridge
Version:
React-native bridge for ZoomUs video conference calls SDK
53 lines (44 loc) • 1.48 kB
JavaScript
;
const xcode = require('xcode');
const fs = require('fs');
const path = require('path');
const packageJson = require('../../../package.json');
const frameworks = [
"libsqlite3.tbd",
"libc++.tbd",
"libz.1.2.5.tbd",
"VideoToolbox.framework",
"ReplayKit.framework",
"CoreBluetooth.framework"
];
const projectName = packageJson.name;
const projectPath = `./ios/${projectName}.xcodeproj/project.pbxproj`;
const xcodeProject = xcode.project(projectPath);
const pbxProject = xcodeProject.parseSync();
const target = pbxProject.getFirstTarget().uuid;
console.log('Adding frameworks...');
frameworks.map(framework => {
pbxProject.addFramework(framework, { link: true, target });
pbxProject.addStaticLibrary(framework, {
target
});
});
fs.writeFileSync(
projectPath,
pbxProject.writeSync()
);
const settingsGradlePath = './android/settings.gradle';
const settingsGradle = fs.readFileSync(settingsGradlePath, 'utf8');
const projectDir = '../node_modules/react-native-zoom-bridge';
const getIncludeForProject = (name) => (
`\ninclude ':${name}'\n` +
`project(':${name}').projectDir = ` +
`new File(rootProject.projectDir, '${path.join(projectDir, 'android', name)}')\n`
);
const projectsToInclude = [
'zoomcommonlib',
'zoomsdk'
];
const newSettingsGradle = projectsToInclude.reduce((content, project) =>
content.replace(/\n/, getIncludeForProject(project)), settingsGradle);
fs.writeFileSync(settingsGradlePath, newSettingsGradle);