Batch-install native modules to minimize EAS build credits: - @maplibre/maplibre-react-native — map view for routes (Phase 3) - @sentry/react-native — crash reporting and error tracking - expo-sqlite — offline route storage (Phase 5) - expo-notifications — push notifications (Phase 7) - expo-location — GPS for activity recording (future) All registered as Expo config plugins. Requires one new EAS build to include the native modules. Also: - Use npx eas-cli in build scripts (not global eas) - Add pnpm dev:ios / dev:android root scripts using eas build:dev - Fix expo-doctor: add expo-constants, expo-linking, dedupe react Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
50 lines
1.1 KiB
TypeScript
50 lines
1.1 KiB
TypeScript
import { ExpoConfig, ConfigContext } from "expo/config";
|
|
|
|
export default ({ config }: ConfigContext): ExpoConfig => ({
|
|
...config,
|
|
name: "trails.cool",
|
|
slug: "mobile",
|
|
version: "0.0.1",
|
|
scheme: "trailscool",
|
|
orientation: "portrait",
|
|
icon: "./assets/icon.png",
|
|
userInterfaceStyle: "light",
|
|
splash: {
|
|
image: "./assets/splash-icon.png",
|
|
resizeMode: "contain",
|
|
backgroundColor: "#ffffff",
|
|
},
|
|
ios: {
|
|
supportsTablet: true,
|
|
bundleIdentifier: "cool.trails.app",
|
|
infoPlist: {
|
|
NSAppTransportSecurity: {
|
|
NSAllowsLocalNetworking: true,
|
|
},
|
|
ITSAppUsesNonExemptEncryption: false,
|
|
},
|
|
},
|
|
android: {
|
|
adaptiveIcon: {
|
|
foregroundImage: "./assets/adaptive-icon.png",
|
|
backgroundColor: "#ffffff",
|
|
},
|
|
package: "cool.trails.app",
|
|
},
|
|
web: {
|
|
favicon: "./assets/favicon.png",
|
|
},
|
|
plugins: [
|
|
"expo-router",
|
|
"expo-secure-store",
|
|
"expo-web-browser",
|
|
"@maplibre/maplibre-react-native",
|
|
"@sentry/react-native",
|
|
"expo-sqlite",
|
|
],
|
|
extra: {
|
|
eas: {
|
|
projectId: "93c75cae-fecf-4ce5-8cd8-c823760b12e2",
|
|
},
|
|
},
|
|
});
|