Severity: Medium
Area: android
Problem
The Android manifest enables cleartext traffic via a build placeholder, and the default API base URL is plaintext HTTP. If the placeholder resolves to true in release builds, the template ships apps that permit unencrypted HTTP in production.
Evidence
apps/native/android/app/src/main/AndroidManifest.xml → android:usesCleartextTraffic="${usesCleartextTraffic}"
setup.mjs default API base URL → http://localhost:8000
Why it matters (for a starter template)
Cleartext HTTP is expected in dev but must be off in release. If the placeholder isn't gated to debug builds, derived apps silently allow plaintext network traffic.
Suggested fix
- Verify the
usesCleartextTraffic manifest placeholder is true only for debug and false for release.
- Document that production must use HTTPS.
Acceptance criteria
Severity: Medium
Area: android
Problem
The Android manifest enables cleartext traffic via a build placeholder, and the default API base URL is plaintext HTTP. If the placeholder resolves to
truein release builds, the template ships apps that permit unencrypted HTTP in production.Evidence
apps/native/android/app/src/main/AndroidManifest.xml→android:usesCleartextTraffic="${usesCleartextTraffic}"setup.mjsdefault API base URL →http://localhost:8000Why it matters (for a starter template)
Cleartext HTTP is expected in dev but must be off in release. If the placeholder isn't gated to debug builds, derived apps silently allow plaintext network traffic.
Suggested fix
usesCleartextTrafficmanifest placeholder istrueonly for debug andfalsefor release.Acceptance criteria
usesCleartextTraffictofalse.