diff --git a/docs/development/local-stack.md b/docs/development/local-stack.md index c6018be..684987a 100644 --- a/docs/development/local-stack.md +++ b/docs/development/local-stack.md @@ -105,8 +105,10 @@ The API seed is a no-op unless its documented local fixture identity is set. The Expo window defaults to Metro with `EXPO_PUBLIC_API_URL=http://127.0.0.1:3003`. Use `scripts/dev-local.sh ios` or -`android` to launch the native application against the same API. Physical -devices require a reachable host URL rather than loopback. +`android` to launch the native application against the same API. The native +launcher supplies a UTF-8 locale inside its sanitized environment so CocoaPods +does not depend on the calling shell's locale. Physical devices require a +reachable host URL rather than loopback. `e2e/maestro/login-screen-smoke.yaml` verifies the native build and Auth shell without credentials. `e2e/maestro/login-smoke.yaml` is the authenticated diff --git a/scripts/dev-local.sh b/scripts/dev-local.sh index 8f7164e..e99a629 100755 --- a/scripts/dev-local.sh +++ b/scripts/dev-local.sh @@ -576,7 +576,8 @@ cmd_native() { [ -n "$AUTH_ANON_KEY" ] || die "EXPO_PUBLIC_SUPABASE_ANON_KEY is required for the mobile Auth client." assert_allowed_auth ensure_infra - (cd "$ROOT" && env -i PATH="$PATH" HOME="$HOME" TMPDIR="${TMPDIR:-/tmp}" EXPO_PUBLIC_API_URL="$MOBILE_API_URL" \ + (cd "$ROOT" && env -i PATH="$PATH" HOME="$HOME" TMPDIR="${TMPDIR:-/tmp}" \ + LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 EXPO_PUBLIC_API_URL="$MOBILE_API_URL" \ EXPO_PUBLIC_SUPABASE_URL="$AUTH_URL" EXPO_PUBLIC_SUPABASE_ANON_KEY="$AUTH_ANON_KEY" \ npm run "$platform" -w @sauci/mobile) }