1.8 KiB
1.8 KiB
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.
versionformat:23.01.XversionCode:X(just the last number) Examples:- version
23.01.1-> versionCode1 - version
23.01.3-> versionCode3 - version
23.01.123-> versionCode123
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
- 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).
- Photo Saving (Permissions)
- Uses modern Android MediaStore API (
writeOnly = truevia expo-media-library) to save photos directly toSchnappix - <EventName> - CollagenandSchnappix - <EventName> - Originale. - Do NOT attempt to force legacy
WRITE_EXTERNAL_STORAGEorREAD_EXTERNAL_STORAGEon Android 13+, as it will fail.
- Uses modern Android MediaStore API (
- Package Name
- Must strictly remain
de.orfel.schnappix.
- Must strictly remain