Files
SIAB-Scale/RELEASE_CHECKLIST.md
T
andrew 9756539494 chore: configure for Play Store release
- Change application ID to id.ptsemangat.siab_scale
- Move Kotlin package to id/ptsemangat/siab_scale
- Update iOS/macOS/Linux/Windows bundle identifiers
- Configure release signing in both build.gradle files
- Add proguard-rules.pro
- Add key.properties.example template
- Add privacy policy placeholders (en/id)
- Add Gitea CI workflow for AAB builds
- Add RELEASE_CHECKLIST.md
- Update copyrights to PT. Semangat Inovasi Anak Bangsa
2026-09-14 14:40:18 +07:00

4.8 KiB

SIAB Scale - Release Checklist

Pre-Release Configuration

Application ID (Completed)

  • Changed to id.ptsemangat.siab_scale in Android build.gradle
  • Changed to id.ptsemangat.siab_scale in Android build.gradle.kts
  • Moved Kotlin package to id/ptsemangat/siab_scale/
  • Updated iOS bundle identifier
  • Updated macOS bundle identifier
  • Updated Linux application ID
  • Updated Windows metadata
  • Updated web manifest

Release Signing (Pending - User Action Required)

  • Generate keystore (run locally):
    keytool -genkey -v \
      -keystore siab-release.keystore \
      -alias siab \
      -keyalg RSA \
      -keysize 2048 \
      -validity 10000 \
      -storepass YOUR_STORE_PASSWORD \
      -keypass YOUR_KEY_PASSWORD \
      -dname "CN=SIAB Scale, OU=Mobile, O=PT. Semangat Inovasi Anak Bangsa, L=Jakarta, S=DKI Jakarta, C=ID"
    
  • Create android/key.properties (from key.properties.example):
    storePassword=YOUR_STORE_PASSWORD
    keyPassword=YOUR_KEY_PASSWORD
    keyAlias=siab
    storeFile=../siab-release.keystore
    
  • Verify siab-release.keystore is in .gitignore
  • Verify android/key.properties is in .gitignore

Privacy Policy (Pending)

  • Edit privacy-policy/en.html - fill in:
    • [DATE] with current date
    • [YOUR_EMAIL] with contact email
    • [YOUR_ADDRESS] with company address
  • Edit privacy-policy/id.html - fill in:
    • [TANGGAL] with current date
    • [EMAIL_ANDA] with contact email
    • [ALAMAT_ANDA] with company address
  • Host on Gitea Pages or update URL in Play Console

Play Console Assets (Pending)

Required Assets

  • App Icon: 512x512 PNG (in progress - expected tomorrow)
  • Feature Graphic: 1024x500 JPG/PNG
  • Phone Screenshots: 2-8 images (16:9 or 9:16 ratio, 320-3840px)
  • 7-inch Tablet Screenshots: 1-8 images (if supporting tablets)

Store Listing

  • Short Description: Max 80 characters
  • Full Description: Max 4000 characters

Content & Data Safety

  • Complete Content Rating questionnaire
  • Set Target Audience and Content
  • Complete Data Safety form:
    • Bluetooth: Yes (for device connectivity)
    • Location: Yes (required for BLE scanning, but not collected)
    • Files: Yes (CSV storage on device)
    • Data shared with third parties: No
    • Data encrypted in transit: N/A (no network)
    • Data deletion: User can clear app data or uninstall

Build & Test

Local Build

  • Run tests: flutter test
  • Run analyzer: flutter analyze
  • Build AAB:
    flutter build appbundle \
      --release \
      --obfuscate \
      --split-debug-info=build/debug-info \
      --dart-define=SIAB_DEVICE_NAME=SIAB
    
  • Verify AAB size (should be < 150MB)
  • Test on physical devices:
    • Android API 21 (minimum)
    • Android API 28
    • Android API 33
    • Android API 34

Test Cases

  • Fresh install - BLE permission flow
  • Scan for SIAB devices
  • Register device with custom label
  • Connect to device
  • Real-time weight display
  • Save stable measurement
  • Export/share CSV
  • Disconnect/reconnect
  • Offline mode (no Bluetooth)

Gitea CI Setup

Secrets Configuration

  • Add secrets in Repository → Settings → Secrets → Actions:
    • KEYSTORE_BASE64: Base64-encoded keystore file
      base64 -w 0 siab-release.keystore
      
    • KEYSTORE_PASSWORD: Keystore store password
    • KEY_PASSWORD: Keystore key password

Test CI Workflow

  • Push a tag to trigger build:
    git tag v1.0.0
    git push origin v1.0.0
    
  • Verify AAB artifact is uploaded

Play Console Submission

App Setup

  • Create app in Play Console
  • Set default language
  • Set app name: "SIAB Scale"

Store Listing

  • Upload screenshots
  • Upload feature graphic
  • Add short description
  • Add full description
  • Upload app icon (512x512)

Content

  • Complete Content Rating questionnaire
  • Set Target Audience
  • Complete Data Safety form

Release

  • Create Internal Testing track
  • Upload AAB
  • Add release notes
  • Add testers (emails or Google Group)
  • Submit for review

Post-Submission

  • Monitor crash reports in Play Console
  • Respond to user reviews
  • Plan updates based on feedback

Git Commands Reference

# Generate keystore
keytool -genkey -v -keystore siab-release.keystore -alias siab -keyalg RSA -keysize 2048 -validity 10000

# Base64 encode keystore for CI
base64 -w 0 siab-release.keystore | pbcopy  # macOS
base64 -w 0 siab-release.keystore | xclip   # Linux

# Tag and push for CI build
git tag v1.0.0
git push origin v1.0.0

# Build locally
flutter build appbundle --release --obfuscate --split-debug-info=build/debug-info --dart-define=SIAB_DEVICE_NAME=SIAB