You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

72 lines
2.2 KiB

/**
* Setup script for native dependencies
* Configures native build environments and dependencies
*/
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');
function setupAndroid() {
console.log('🔧 Setting up Android environment...');
// Create gradle wrapper if it doesn't exist
const gradleWrapper = path.join('android', 'gradlew');
if (!fs.existsSync(gradleWrapper)) {
console.log('Creating Gradle wrapper...');
execSync('cd android && gradle wrapper', { stdio: 'inherit' });
}
// Make gradle wrapper executable
fs.chmodSync(gradleWrapper, '755');
// Create local.properties if it doesn't exist
const localProperties = path.join('android', 'local.properties');
if (!fs.existsSync(localProperties)) {
const androidHome = process.env.ANDROID_HOME;
if (androidHome) {
const content = `sdk.dir=${androidHome.replace(/\\/g, '\\\\')}\n`;
fs.writeFileSync(localProperties, content);
console.log('Created local.properties');
}
}
// Sync Gradle
console.log('Syncing Gradle...');
execSync('cd android && ./gradlew --refresh-dependencies', { stdio: 'inherit' });
}
function setupIOS() {
if (process.platform !== 'darwin') {
console.warn('⚠️ Skipping iOS setup (macOS required)');
return;
}
console.log('🔧 Setting up iOS environment...');
// Install pods
console.log('Installing CocoaPods dependencies...');
execSync('cd ios && pod install', { stdio: 'inherit' });
// Create Xcode project if it doesn't exist
const xcodeProject = path.join('ios', 'DailyNotificationPlugin.xcodeproj');
if (!fs.existsSync(xcodeProject)) {
console.log('Creating Xcode project...');
execSync('cd ios && pod setup', { stdio: 'inherit' });
}
}
function main() {
console.log('🚀 Setting up native development environment...\n');
try {
setupAndroid();
setupIOS();
console.log('\n✅ Native environment setup completed successfully!');
} catch (error) {
console.error('\n❌ Native environment setup failed:', error.message);
process.exit(1);
}
}
main();