import 'dotenv/config';
const requiredEnvVars = [
'PROJECT_ID',
'CLIENT_URL',
'CLIENT_DOMAIN',
'API_BASE_URL',
'GOOGLE_CLIENT_ID_IOS',
'GOOGLE_CLIENT_ID_ANDROID',
'GOOGLE_CLIENT_ID_WEB',
'APPLE_CLIENT_ID_IOS',
'APPLE_CLIENT_ID_ANDROID',
'APPLE_CLIENT_ID_WEB'
];
const missingRequired = requiredEnvVars.filter(envVar => !process.env[envVar]);
if (missingRequired.length > 0) {
console.error(`Warning: Missing required environment variables: ${missingRequired.join(', ')}`);
process.exit(1);
}
export default {
expo: {
name: "Ramble",
slug: "Ramble",
version: "1.0.0",
orientation: "default",
icon: "./assets/images/icon.png",
scheme: "com.flyby.ramble",
userInterfaceStyle: "automatic",
newArchEnabled: true,
ios: {
supportsTablet: true,
bundleIdentifier: "com.flyby.ramble",
infoPlist: {
ITSAppUsesNonExemptEncryption: false,
NSCameraUsageDescription: "화상 통화를 위해 카메라 접근 권한이 필요합니다.",
NSMicrophoneUsageDescription: "음성/화상 통화를 위해 마이크 접근 권한이 필요합니다.",
}
},
android: {
adaptiveIcon: {
foregroundImage: "./assets/images/adaptive-icon.png",
backgroundColor: "#ffffff"
},
edgeToEdgeEnabled: true,
package: "com.flyby.ramble",
},
web: {
bundler: "metro",
output: "static",
favicon: "./assets/images/favicon.png"
},
plugins: [
[
"expo-router",
{
"origin": process.env.CLIENT_URL
}
],
[
"expo-splash-screen",
{
image: "./assets/images/splash-icon.png",
imageWidth: 200,
resizeMode: "contain",
backgroundColor: "#ffffff"
}
],
[
"react-native-edge-to-edge",
{
android: {
parentTheme: "Default",
enforceNavigationBarContrast: false
}
}
],
"expo-secure-store",
"@config-plugins/react-native-webrtc",
],
experiments: {
typedRoutes: true
},
extra: {
router: {},
eas: {
projectId: process.env.PROJECT_ID
},
apiBaseUrl: process.env.API_BASE_URL,
clientUrl: process.env.CLIENT_URL,
clientDomain: process.env.CLIENT_DOMAIN,
googleClientIdIos: process.env.GOOGLE_CLIENT_ID_IOS,
googleClientIdAndroid: process.env.GOOGLE_CLIENT_ID_ANDROID,
googleClientIdWeb: process.env.GOOGLE_CLIENT_ID_WEB,
appleClientIdIos: process.env.APPLE_CLIENT_ID_IOS,
appleClientIdAndroid: process.env.APPLE_CLIENT_ID_ANDROID,
appleClientIdWeb: process.env.APPLE_CLIENT_ID_WEB,
}
}
};