// Dynamic Expo config. We use a JS config (rather than static app.json) so the // Android Google Maps API key can be pulled from EXPO_PUBLIC_GOOGLE_API_KEY // at build time without committing the key to the repo. // // react-native-maps renders blank tiles (just the Google logo, nothing else) // on Android when no Maps API key is set in the AndroidManifest. Expo's // prebuild reads `android.config.googleMaps.apiKey` and writes it to the // manifest as com.google.android.geo.API_KEY — that is what makes the map // actually draw. On iOS the default provider is Apple Maps, which needs no // key, so nothing is injected there. const googleMapsApiKey = process.env.EXPO_PUBLIC_GOOGLE_API_KEY; module.exports = ({ config }) => ({ ...config, name: "Waseel", description: "Find your perfect ride with Waseel.", githubUrl: "https://github.com/sanidhyy/uber-clone", slug: "waseel", version: "1.0.0", orientation: "portrait", icon: "./assets/images/icon.png", scheme: "waseel", userInterfaceStyle: "automatic", splash: { image: "./assets/images/splash.png", resizeMode: "contain", backgroundColor: "#2F80ED", }, ios: { supportsTablet: true, bundleIdentifier: "com.waseel.app", }, android: { adaptiveIcon: { foregroundImage: "./assets/images/adaptive-icon.png", backgroundColor: "#ffffff", }, package: "com.waseel.app", config: { googleMaps: { apiKey: googleMapsApiKey ?? "", }, }, }, web: { bundler: "metro", output: "server", favicon: "./assets/images/favicon.png", }, plugins: [ [ "expo-router", { origin: "https://example.com/", }, ], ], experiments: { typedRoutes: true, }, extra: { router: { origin: "https://example.com/", }, }, });