feat: add EAS build configuration for local APK builds

- Add eas.json with development, preview, and production profiles
- Configure preview profile for APK builds (arm64-v8a only)
- Add build:apk npm script for local builds
- Update app.json with app name and Android package
- Add expo-build-properties dependency
- Update CLAUDE.md with build documentation
This commit is contained in:
2026-01-12 19:29:52 +01:00
parent e6b9dd9d34
commit fef30d428d
5 changed files with 129 additions and 23 deletions

View File

@@ -23,6 +23,7 @@ npm run android -w @caldav/client # Start on Android
npm run ios -w @caldav/client # Start on iOS
npm run web -w @caldav/client # Start web version
npm run lint -w @caldav/client # Run ESLint
npm run build:apk -w @caldav/client # Build APK locally with EAS
```
### Server (apps/server) - Express.js backend
@@ -42,6 +43,7 @@ npm run start -w @caldav/server # Run compiled server (port 3000)
| | NativeWind | Tailwind CSS for React Native |
| | Zustand | State management |
| | FlashList | High-performance lists |
| | EAS Build | Local APK/IPA builds |
| Backend | Express.js | Web framework |
| | MongoDB | Database |
| | Mongoose | ODM |
@@ -404,6 +406,29 @@ NODE_ENV=development # development = pretty logs, production = JSON
- `ChatStore`: Zustand store with addMessage(), addMessages(), updateMessage(), clearMessages() - loads from server on mount and persists across tab switches
- Event Detail and Note screens exist as skeletons
## Building
### Local APK Build with EAS
```bash
npm run build:apk -w @caldav/client
```
This uses the `preview` profile from `eas.json` which builds an APK with:
- `arm64-v8a` architecture only (smaller APK size)
- No credentials required (`withoutCredentials: true`)
- Internal distribution
**Requirements:** Android SDK and Java must be installed locally.
**EAS Configuration:** `apps/client/eas.json` contains build profiles:
- `development`: Development client with internal distribution
- `preview`: APK build for testing (used by `build:apk`)
- `production`: Production build with auto-increment versioning
**App Identity:**
- Package name: `com.gilmour109.calchat`
- EAS Project ID: `b722dde6-7d89-48ff-9095-e007e7c7da87`
## Documentation
Detailed architecture diagrams are in `docs/`: