# 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` 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 - - Collagen` and `Schnappix - - 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`. # Git & Workflow Rules - **Always Commit and Push:** At the end of every interaction or when tasks are completed, ALL changes must be automatically committed and pushed to Git (`git add .`, `git commit`, `git push`). - **Push Retry Bug:** If `git push` fails with an authentication error, ALWAYS try running it a second time, as it usually succeeds on the retry.