👟 Reproduction steps
npx create-expo-app@latest myapp --template blank-typescript # Expo SDK 54
cd myapp
npm install react-native-appwrite # 0.34.0
npx expo prebuild --platform android --no-install
./android/gradlew -p android assembleRelease
# install and launch the APK on a device/emulator
👎 Actual Behavior
The app crashes immediately at launch:
FATAL EXCEPTION: pool-2-thread-1
Process: io.appwrite.connectqa
java.lang.NoClassDefFoundError: Failed resolution of: Lexpo/modules/filesystem/FilePermissionModule;
at expo.modules.filesystem.FileSystemPackage.createInternalModules(FileSystemPackage.kt:9)
at expo.modules.adapters.react.ReactModuleRegistryProvider.get(ReactModuleRegistryProvider.java:47)
...
react-native-appwrite@0.34.0 declares a hard dependency:
"dependencies": {
"expo-file-system": "18.*.*"
}
Expo SDK 54 apps use expo-file-system 19.x, so npm installs a second, nested copy of 18.x under node_modules/react-native-appwrite/. Expo autolinking then mixes the two versions' native code — FilePermissionModule was removed/relocated in 19.x — and module registration dies at startup.
👍 Expected Behavior
The SDK works on current Expo SDK releases. expo-file-system should likely be a peer dependency (or at least a range matching the host app's Expo SDK) instead of a hard 18.*.* pin.
🎲 SDK version
react-native-appwrite 0.34.0, Expo SDK 54, React Native 0.8x, Android (release build)
💭 Additional context
Caught by the Connect snippets QA in appwrite/vibes — the react-native Android lane scaffolds with create-expo-app@latest, adds the SDK, and the built APK crashes before rendering anything (Maestro screenshots show the launcher home screen instead of the app).
🤖 Generated with Claude Code
👟 Reproduction steps
👎 Actual Behavior
The app crashes immediately at launch:
react-native-appwrite@0.34.0declares a hard dependency:Expo SDK 54 apps use expo-file-system 19.x, so npm installs a second, nested copy of 18.x under
node_modules/react-native-appwrite/. Expo autolinking then mixes the two versions' native code —FilePermissionModulewas removed/relocated in 19.x — and module registration dies at startup.👍 Expected Behavior
The SDK works on current Expo SDK releases.
expo-file-systemshould likely be a peer dependency (or at least a range matching the host app's Expo SDK) instead of a hard18.*.*pin.🎲 SDK version
react-native-appwrite 0.34.0, Expo SDK 54, React Native 0.8x, Android (release build)
💭 Additional context
Caught by the Connect snippets QA in appwrite/vibes — the react-native Android lane scaffolds with
create-expo-app@latest, adds the SDK, and the built APK crashes before rendering anything (Maestro screenshots show the launcher home screen instead of the app).🤖 Generated with Claude Code