Files
Schnappix/AGENTS.md
T

33 lines
1.8 KiB
Markdown

# Expo HAS CHANGED
Read the exact versioned docs at https://docs.expo.dev/versions/v56.0.0/ before writing any code.
# Versioning & Build Rules
Whenever a new build is triggered, the version MUST be updated in BOTH `app.json` and `package.json`.
- `version` format: `23.01.X`
- `versionCode`: `X` (just the last number)
Examples:
- version `23.01.1` -> versionCode `1`
- version `23.01.3` -> versionCode `3`
- version `23.01.123` -> versionCode `123`
IMPORTANT: After bumping the version in `app.json`, you MUST run `npx expo prebuild -p android --no-install` BEFORE running Gradle (`.\gradlew assembleRelease`). Otherwise, `android/app/build.gradle` will retain the old version code and the Play Store will reject the upload!
Apps must always be built as BOTH `.apk` and `.aab`.
The exact naming syntax for compiled files is:
`Schnappix_v23.01.X.apk`
`Schnappix_v23.01.X.aab`
IMPORTANT: All compiled files must be placed in the `apks/` directory (e.g. `apks/Schnappix_v23.01.X.apk`). Do NOT place them in the root directory.
# Architectural Decisions & Project Rules
1. **Kiosk Mode (Device Owner)**
- The app uses Custom Native Modules (Kotlin) for LockTask mode. It does NOT use external MDM software.
- For LockTask to work, the app MUST be set as Device Owner via ADB (`adb shell dpm set-device-owner de.orfel.schnappix/de.orfel.schnappix.KioskDeviceAdminReceiver`).
2. **Photo Saving (Permissions)**
- Uses modern Android MediaStore API (`writeOnly = true` via expo-media-library) to save photos directly to `Schnappix - <EventName> - Collagen` and `Schnappix - <EventName> - Originale`.
- Do NOT attempt to force legacy `WRITE_EXTERNAL_STORAGE` or `READ_EXTERNAL_STORAGE` on Android 13+, as it will fail.
3. **Package Name**
- Must strictly remain `de.orfel.schnappix`.