|
| 1 | +# Deploy Explorer3 - Quick Start Guide |
| 2 | + |
| 3 | +## ⚠️ Note: Build Environment Required |
| 4 | + |
| 5 | +The deployment script requires: |
| 6 | +- **Java 17+** (JDK) |
| 7 | +- **Android SDK** (via Android Studio or command line tools) |
| 8 | +- **Gradle** (included via wrapper) |
| 9 | + |
| 10 | +Since these aren't available in the current environment, here's how to deploy: |
| 11 | + |
| 12 | +## 🚀 Deployment Steps |
| 13 | + |
| 14 | +### 1. Setup Your Build Environment |
| 15 | + |
| 16 | +**Option A: Use Android Studio (Recommended)** |
| 17 | +```bash |
| 18 | +# 1. Open Android Studio |
| 19 | +# 2. Open this project: /workspace/unstoppable-wallet-android |
| 20 | +# 3. Wait for Gradle sync to complete |
| 21 | +# 4. Go to Build → Generate Signed Bundle / APK |
| 22 | +``` |
| 23 | + |
| 24 | +**Option B: Use Command Line** |
| 25 | +```bash |
| 26 | +# Install Java 17+ |
| 27 | +# Ubuntu/Debian: |
| 28 | +sudo apt-get update |
| 29 | +sudo apt-get install openjdk-17-jdk |
| 30 | + |
| 31 | +# macOS (using Homebrew): |
| 32 | +brew install openjdk@17 |
| 33 | + |
| 34 | +# Verify installation |
| 35 | +java -version |
| 36 | + |
| 37 | +# Set JAVA_HOME (if needed) |
| 38 | +export JAVA_HOME=/path/to/java17 |
| 39 | +``` |
| 40 | + |
| 41 | +### 2. Run Deployment Script |
| 42 | + |
| 43 | +Once Java is installed, run: |
| 44 | +```bash |
| 45 | +cd /workspace/unstoppable-wallet-android |
| 46 | +./deploy.sh |
| 47 | +``` |
| 48 | + |
| 49 | +**Expected Output:** |
| 50 | +``` |
| 51 | +🚀 Explorer3 Deployment Script |
| 52 | +================================ |
| 53 | +📋 Checking prerequisites... |
| 54 | +✅ Java found: openjdk version "17.x.x" |
| 55 | +✅ ANDROID_HOME: /path/to/android/sdk |
| 56 | +✅ Gradle wrapper found |
| 57 | +🧹 Cleaning previous builds... |
| 58 | +🏗️ Building release APK... |
| 59 | +✅ Build successful! |
| 60 | +📦 APK Location: app/build/outputs/apk/release/app-release.apk |
| 61 | +``` |
| 62 | + |
| 63 | +### 3. Alternative: Manual Build Commands |
| 64 | + |
| 65 | +If the script doesn't work, run these manually: |
| 66 | + |
| 67 | +```bash |
| 68 | +# Clean previous builds |
| 69 | +./gradlew clean |
| 70 | + |
| 71 | +# Build release APK |
| 72 | +./gradlew assembleRelease |
| 73 | + |
| 74 | +# Build AAB for Play Store |
| 75 | +./gradlew bundleRelease |
| 76 | + |
| 77 | +# Check outputs |
| 78 | +ls -lh app/build/outputs/apk/release/ |
| 79 | +ls -lh app/build/outputs/bundle/release/ |
| 80 | +``` |
| 81 | + |
| 82 | +### 4. Test the Build |
| 83 | + |
| 84 | +**Install on Connected Device:** |
| 85 | +```bash |
| 86 | +# Connect Android device via USB |
| 87 | +adb devices |
| 88 | + |
| 89 | +# Install APK |
| 90 | +adb install app/build/outputs/apk/release/app-release.apk |
| 91 | + |
| 92 | +# Or install via Android Studio |
| 93 | +# Run → Run 'app' |
| 94 | +``` |
| 95 | + |
| 96 | +**Quick Test Checklist:** |
| 97 | +- [ ] App launches successfully |
| 98 | +- [ ] Navigate to Explorer3 screen |
| 99 | +- [ ] Perform a test search |
| 100 | +- [ ] Verify navigation works |
| 101 | + |
| 102 | +### 5. Deploy to Users |
| 103 | + |
| 104 | +**Option 1: Firebase App Distribution (Beta)** |
| 105 | +```bash |
| 106 | +# Install Firebase CLI |
| 107 | +npm install -g firebase-tools |
| 108 | + |
| 109 | +# Login |
| 110 | +firebase login |
| 111 | + |
| 112 | +# Distribute |
| 113 | +firebase appdistribution:distribute \ |
| 114 | + app/build/outputs/apk/release/app-release.apk \ |
| 115 | + --app YOUR_APP_ID \ |
| 116 | + --groups "beta-testers" \ |
| 117 | + --release-notes "Explorer3: Unified search and block explorer" |
| 118 | +``` |
| 119 | + |
| 120 | +**Option 2: Google Play Console** |
| 121 | +1. Go to Play Console → Your App |
| 122 | +2. Go to Testing → Internal Testing |
| 123 | +3. Create new release |
| 124 | +4. Upload `app-release.aab` |
| 125 | +5. Add release notes |
| 126 | +6. Review and rollout (start with 5%) |
| 127 | + |
| 128 | +**Option 3: Direct APK Share** |
| 129 | +- Share APK file directly (for internal testing only) |
| 130 | +- Not recommended for production |
| 131 | + |
| 132 | +## 📋 Pre-Deployment Checklist |
| 133 | + |
| 134 | +### Code Verification ✅ |
| 135 | +- [x] All code committed to git |
| 136 | +- [x] No linter errors |
| 137 | +- [x] All resources verified |
| 138 | +- [x] Navigation integrated |
| 139 | +- [x] Error handling implemented |
| 140 | + |
| 141 | +### Build Verification |
| 142 | +- [ ] Java 17+ installed |
| 143 | +- [ ] Android SDK configured |
| 144 | +- [ ] Build completes successfully |
| 145 | +- [ ] APK/AAB files generated |
| 146 | +- [ ] No ProGuard warnings |
| 147 | + |
| 148 | +### Testing |
| 149 | +- [ ] Smoke test on device |
| 150 | +- [ ] Navigation flows tested |
| 151 | +- [ ] Error cases tested |
| 152 | +- [ ] Performance acceptable |
| 153 | + |
| 154 | +## 🔍 Troubleshooting |
| 155 | + |
| 156 | +### "Java not found" |
| 157 | +```bash |
| 158 | +# Install Java 17+ |
| 159 | +# Ubuntu/Debian: |
| 160 | +sudo apt-get install openjdk-17-jdk |
| 161 | + |
| 162 | +# macOS: |
| 163 | +brew install openjdk@17 |
| 164 | + |
| 165 | +# Verify |
| 166 | +java -version |
| 167 | +``` |
| 168 | + |
| 169 | +### "ANDROID_HOME not set" |
| 170 | +```bash |
| 171 | +# Set ANDROID_HOME (usually in ~/.bashrc or ~/.zshrc) |
| 172 | +export ANDROID_HOME=$HOME/Android/Sdk |
| 173 | +export PATH=$PATH:$ANDROID_HOME/tools |
| 174 | +export PATH=$PATH:$ANDROID_HOME/platform-tools |
| 175 | + |
| 176 | +# Or use Android Studio's SDK location |
| 177 | +export ANDROID_HOME=$HOME/Library/Android/sdk # macOS |
| 178 | +export ANDROID_HOME=$HOME/Android/Sdk # Linux |
| 179 | +``` |
| 180 | + |
| 181 | +### Build Fails |
| 182 | +```bash |
| 183 | +# Clean and rebuild |
| 184 | +./gradlew clean |
| 185 | +./gradlew assembleRelease --stacktrace |
| 186 | + |
| 187 | +# Check build logs |
| 188 | +cat app/build/outputs/logs/build.log |
| 189 | +``` |
| 190 | + |
| 191 | +### APK Installation Fails |
| 192 | +```bash |
| 193 | +# Uninstall previous version |
| 194 | +adb uninstall io.horizontalsystems.bankwallet |
| 195 | + |
| 196 | +# Install new version |
| 197 | +adb install app/build/outputs/apk/release/app-release.apk |
| 198 | + |
| 199 | +# Or force install |
| 200 | +adb install -r app/build/outputs/apk/release/app-release.apk |
| 201 | +``` |
| 202 | + |
| 203 | +## 📊 What's Ready |
| 204 | + |
| 205 | +### Code Status ✅ |
| 206 | +- All Explorer3 code implemented |
| 207 | +- All fixes applied |
| 208 | +- Resources verified |
| 209 | +- Navigation integrated |
| 210 | +- Documentation complete |
| 211 | + |
| 212 | +### Files Ready |
| 213 | +- 10 Kotlin source files |
| 214 | +- Navigation graph updated |
| 215 | +- String resources added |
| 216 | +- Drawable resources verified |
| 217 | +- Deployment scripts created |
| 218 | + |
| 219 | +### Git Status ✅ |
| 220 | +- All changes committed |
| 221 | +- All changes pushed to GitHub |
| 222 | +- Ready for CI/CD integration |
| 223 | + |
| 224 | +## 🎯 Next Steps |
| 225 | + |
| 226 | +1. **Set up build environment** (Java + Android SDK) |
| 227 | +2. **Run deployment script** (`./deploy.sh`) |
| 228 | +3. **Test on device** (install APK) |
| 229 | +4. **Deploy to beta** (Firebase or Play Console) |
| 230 | +5. **Monitor** (crash reports, analytics) |
| 231 | + |
| 232 | +## 📚 Additional Resources |
| 233 | + |
| 234 | +- **Deployment Checklist:** `DEPLOYMENT_CHECKLIST.md` |
| 235 | +- **Test Guide:** `EXPLORER3_TEST_DEPLOY.md` |
| 236 | +- **Code Review:** `EXPLORER3_REVIEW.md` |
| 237 | +- **Deployment Summary:** `EXPLORER3_DEPLOYMENT_SUMMARY.md` |
| 238 | + |
| 239 | +--- |
| 240 | + |
| 241 | +**Status:** ✅ Code Ready, Waiting for Build Environment |
| 242 | +**Action Required:** Install Java 17+ and Android SDK, then run `./deploy.sh` |
0 commit comments