From bc22f0c6f65bbcc923357c27910a466c68e4ae63 Mon Sep 17 00:00:00 2001 From: "Nemo (Claude Code)" Date: Wed, 1 Apr 2026 01:08:04 +0000 Subject: [PATCH] feat: EAS build config for Android APK + BUILD.md (FIBEROPS-210) - Add versionCode: 1 to app.json android section - Add preview-local build profile to eas.json (local Gradle build) - Add build:android:apk and build:android:local npm scripts - Add BUILD.md documenting EAS cloud and local build instructions --- BUILD.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ app.json | 1 + eas.json | 8 +++++++ package.json | 4 +++- 4 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 BUILD.md diff --git a/BUILD.md b/BUILD.md new file mode 100644 index 0000000..bd45850 --- /dev/null +++ b/BUILD.md @@ -0,0 +1,59 @@ +# Building FiberOps Android APK + +## Requirements + +- [Expo account](https://expo.dev) — register at expo.dev +- EAS CLI: `npm install -g eas-cli` +- Authenticate: `eas login` + +## Build (EAS Cloud — recommended) + +Builds the APK on Expo's cloud infrastructure. No local Android SDK needed. + +```bash +eas build --profile preview --platform android +``` + +Or via npm script: + +```bash +npm run build:android:apk +``` + +The build will be queued on EAS. Once complete, download the `.apk` from the Expo dashboard or the URL printed in the CLI output. + +## Build (local — requires Android SDK) + +Requires Android SDK installed and `ANDROID_HOME` set. + +```bash +npm run build:android:local +# or directly: +eas build --local --profile preview --platform android +``` + +Alternatively, use the Expo CLI directly: + +```bash +npx expo run:android --variant release +``` + +## Distribution + +The `preview` profile is configured for **internal distribution** (`buildType: apk`). Share the `.apk` file directly with testers — no Play Store submission needed. + +## Current status + +- QA passed: MOB.1 (manual tasks), MOB.2 (remittance review) +- EAS project ID: `15d21320-57f5-4fb6-a116-82d222d914e2` +- Package: `com.fiberops.mobile` +- Version: `1.0.0` (versionCode: 1) + +## EAS build profiles + +| Profile | Distribution | Output | Use case | +|---------|-------------|--------|----------| +| `preview` | internal | APK (EAS cloud) | QA / internal testing | +| `preview-local` | internal | APK (local Gradle) | Offline / CI builds | +| `development` | internal | Dev client | Development | +| `production` | store | AAB | Play Store release | diff --git a/app.json b/app.json index f4006ba..13f745b 100644 --- a/app.json +++ b/app.json @@ -22,6 +22,7 @@ "backgroundColor": "#0891B2" }, "package": "com.fiberops.mobile", + "versionCode": 1, "permissions": [ "android.permission.CAMERA", "android.permission.RECORD_AUDIO", diff --git a/eas.json b/eas.json index be9128c..2fc1fe9 100644 --- a/eas.json +++ b/eas.json @@ -13,6 +13,14 @@ "buildType": "apk" } }, + "preview-local": { + "distribution": "internal", + "android": { + "buildType": "apk", + "gradleCommand": ":app:assembleRelease" + }, + "env": {} + }, "production": { "autoIncrement": true } diff --git a/package.json b/package.json index 974f2c1..603c0d4 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,9 @@ "start": "expo start", "android": "expo start --android", "ios": "expo start --ios", - "web": "expo start --web" + "web": "expo start --web", + "build:android:apk": "eas build --profile preview --platform android --non-interactive", + "build:android:local": "eas build --local --profile preview --platform android" }, "dependencies": { "@react-native-async-storage/async-storage": "2.2.0", -- 2.43.0