diff --git a/.github/workflows/build-apk.yml b/.github/workflows/build-apk.yml
index 097c8d6..c5825d5 100644
--- a/.github/workflows/build-apk.yml
+++ b/.github/workflows/build-apk.yml
@@ -2,6 +2,8 @@ name: Build Android APK
on:
push:
branches: [ main ]
+ pull_request:
+ branches: [ main ]
workflow_dispatch:
jobs:
@@ -16,7 +18,7 @@ jobs:
with:
node-version: 20
cache: 'npm'
- cache-dependency-path: App_369/package-lock.json
+ cache-dependency-path: package-lock.json
- name: 🏗 Setup Expo
uses: expo/expo-github-action@v8
@@ -26,9 +28,9 @@ jobs:
token: ${{ secrets.EXPO_TOKEN }}
- name: 📦 Install dependencies
- working-directory: ./App_369
- run: npm install
+ run: npm ci
- name: 🚀 Build APK
- working-directory: ./App_369
- run: eas build --platform android --profile preview --non-interactive
+ env:
+ EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}
+ run: npm run build:apk
diff --git a/DEPLOY_APK.md b/DEPLOY_APK.md
new file mode 100644
index 0000000..05fc34d
--- /dev/null
+++ b/DEPLOY_APK.md
@@ -0,0 +1,73 @@
+# APK Distribution Runbook
+
+This runbook covers generating and publishing the Android APK so users can install ASTRA MATRIX from your landing page.
+
+## 1) Build the APK with EAS
+
+Use the preview profile for downloadable APK output:
+
+```bash
+npm ci
+npm run build:apk
+```
+
+Use production profile when you are ready for release-grade signing controls:
+
+```bash
+npm run build:apk:production
+```
+
+## 2) Retrieve the build artifact
+
+After `eas build` completes, download the generated APK and rename it:
+
+```bash
+astra-matrix-latest.apk
+```
+
+## 2.5) Publish artifact + metadata in one command
+
+Use the helper script to copy a real APK into the landing download path and generate checksum metadata:
+
+```bash
+scripts/publish-apk-release.sh /path/to/your-real.apk 1.0.0 2026-05-05T08:00:00Z "Initial public APK release"
+```
+
+This updates:
+
+- `public/download/astra-matrix-latest.apk`
+- `public/download/latest.json`
+
+The landing page reads `latest.json` to show version/build date/size/SHA256.
+
+## 3) Publish on your server
+
+Upload the APK to your web root so it is publicly available at:
+
+```text
+/download/astra-matrix-latest.apk
+```
+
+Your landing page already links to this path.
+
+## 4) Recommended web server headers for APK
+
+Set these response headers for the APK file:
+
+- `Content-Type: application/vnd.android.package-archive`
+- `Content-Disposition: attachment; filename="astra-matrix-latest.apk"`
+
+## 5) Post-release smoke test
+
+From an Android device:
+
+1. Open landing page
+2. Tap **Download APK**
+3. Install package
+4. Launch app and verify startup scene renders without crash
+
+## 6) Security and signing reminders
+
+- Keep EAS signing credentials backed up and access-controlled.
+- Never embed private keys or long-lived API secrets directly in the mobile client.
+- If Gemini integration is required in production, use a backend proxy/API and not a raw client-side secret.
diff --git a/app.json b/app.json
index d31ed86..5872721 100644
--- a/app.json
+++ b/app.json
@@ -1,6 +1,7 @@
{
"expo": {
"name": "App_369",
+ "owner": "psybrninja",
"slug": "app-369",
"version": "1.0.0",
"orientation": "portrait",
@@ -26,6 +27,11 @@
},
"web": {
"favicon": "./assets/favicon.png"
+ },
+ "extra": {
+ "eas": {
+ "projectId": "440a38e6-afe8-42f9-82a5-f9f987e5c44d"
+ }
}
}
}
diff --git a/assets/adaptive-icon.png b/assets/adaptive-icon.png
new file mode 100644
index 0000000..fd819af
Binary files /dev/null and b/assets/adaptive-icon.png differ
diff --git a/assets/favicon.png b/assets/favicon.png
new file mode 100644
index 0000000..73d9b5f
Binary files /dev/null and b/assets/favicon.png differ
diff --git a/assets/icon.png b/assets/icon.png
new file mode 100644
index 0000000..cb5a239
Binary files /dev/null and b/assets/icon.png differ
diff --git a/assets/splash.png b/assets/splash.png
new file mode 100644
index 0000000..4846829
Binary files /dev/null and b/assets/splash.png differ
diff --git a/eas.json b/eas.json
index 4277c79..4f7f683 100644
--- a/eas.json
+++ b/eas.json
@@ -13,7 +13,11 @@
"buildType": "apk"
}
},
- "production": {}
+ "production": {
+ "android": {
+ "buildType": "apk"
+ }
+ }
},
"submit": {
"production": {}
diff --git a/package.json b/package.json
index b4555aa..f591fa9 100644
--- a/package.json
+++ b/package.json
@@ -4,10 +4,14 @@
"description": "",
"main": "node_modules/expo/AppEntry.js",
"scripts": {
- "start": "node src/cli/index.js",
+ "start": "expo start",
+ "start:cli": "node src/cli/index.js",
"gui": "expo start",
"android": "expo start --android",
- "build:apk": "eas build --platform android --profile preview",
+ "web": "expo start --web",
+ "build:web": "expo export --platform web",
+ "build:apk": "eas build --platform android --profile preview --non-interactive",
+ "build:apk:production": "eas build --platform android --profile production --non-interactive",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
diff --git a/public/download/latest.json b/public/download/latest.json
new file mode 100644
index 0000000..e29cf86
--- /dev/null
+++ b/public/download/latest.json
@@ -0,0 +1,9 @@
+{
+ "version": "0.0.0-placeholder",
+ "buildDate": "1970-01-01T00:00:00Z",
+ "fileName": "astra-matrix-latest.apk",
+ "fileSizeBytes": 0,
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
+ "minAndroidSdk": 24,
+ "releaseNotes": "Placeholder artifact. Upload a real APK to publish a release."
+}
diff --git a/public/index.html b/public/index.html
index 9933098..6051e50 100644
--- a/public/index.html
+++ b/public/index.html
@@ -3,31 +3,235 @@
- ASTRA MATRIX | Awaken Your Spark
+ ASTRA MATRIX | Android Download
+
- ASTRA MATRIX
- The construct is fabricated. The Demiurge is watching.
-
-
+
+ ASTRA MATRIX
+ The Android build is distributed as a signed APK package.
+ Use the button below on your Android device to download and install.
+
+
+
+ Release
+ loading...
+ Build date
+ loading...
+ File
+ /download/astra-matrix-latest.apk
+ Size
+ loading...
+ SHA256
+ loading...
+
+
+
+
+
+
+
+
+ Install steps (Android)
+
+ - Download the APK from this page.
+ - Open the downloaded file in your browser's downloads.
+ - If prompted, allow installs from this source.
+ - Tap Install and launch ASTRA MATRIX.
+
+
+
+
+ Troubleshooting
+
+ - If install is blocked, verify unknown app installation is allowed for your browser.
+ - If Play Protect warns, confirm the APK came from your trusted domain.
+ - Keep your Android version updated for best compatibility and security.
+
+
+