feat(ios): preparar soporte iOS

- app.json: bundleIdentifier + buildNumber para iOS
- eas.json: perfiles iOS (development con simulador, preview ipa, production)
  y appleId para submit
- app.config.js: inyección de GOOGLE_MAPS_IOS_KEY (opcional; por defecto
  la app usa Apple Maps en iOS sin necesitar key)
- FeatureMap: MAP_PROVIDER = PROVIDER_GOOGLE en Android, PROVIDER_DEFAULT
  (Apple Maps) en iOS; elimina dependencia de Google Maps key en iOS

Pendiente: generar /ios con 'npx expo prebuild --platform ios' desde macOS.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-07-07 09:45:51 +02:00
co-authored by Claude Sonnet 4.6
parent fa27b22849
commit c092052a1c
4 changed files with 40 additions and 13 deletions
+18 -6
View File
@@ -1,14 +1,26 @@
// Config dinámica: toma app.json como base e inyecta la API key de Google Maps
// desde la variable de entorno GOOGLE_MAPS_API_KEY (secreto de EAS), para no
// commitearla. En local puedes exportarla antes de `npx expo run:android`.
// Config dinámica: inyecta las API keys de Google Maps (Android e iOS) desde
// variables de entorno / secretos de EAS, para no committearlas.
// Android: GOOGLE_MAPS_API_KEY
// iOS: GOOGLE_MAPS_IOS_KEY (solo necesario si se usa Google Maps en iOS;
// por defecto la app usa Apple Maps en iOS y no requiere key)
module.exports = ({ config }) => {
const apiKey = process.env.GOOGLE_MAPS_API_KEY;
if (apiKey) {
const androidKey = process.env.GOOGLE_MAPS_API_KEY;
if (androidKey) {
config.android = config.android || {};
config.android.config = {
...(config.android.config || {}),
googleMaps: { apiKey },
googleMaps: { apiKey: androidKey },
};
}
const iosKey = process.env.GOOGLE_MAPS_IOS_KEY;
if (iosKey) {
config.ios = config.ios || {};
config.ios.config = {
...(config.ios.config || {}),
googleMapsApiKey: iosKey,
};
}
return config;
};