Files
daily-notification-plugin/test-apps/daily-notification-test/README.md
2025-12-08 22:42:23 -08:00

194 lines
4.5 KiB
Markdown

# daily-notification-test
This template should help get you started developing with Vue 3 in Vite.
## Recommended IDE Setup
[VS Code](https://code.visualstudio.com/) + [Vue (Official)](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur).
## Recommended Browser Setup
- Chromium-based browsers (Chrome, Edge, Brave, etc.):
- [Vue.js devtools](https://chromewebstore.google.com/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd)
- [Turn on Custom Object Formatter in Chrome DevTools](http://bit.ly/object-formatters)
- Firefox:
- [Vue.js devtools](https://addons.mozilla.org/en-US/firefox/addon/vue-js-devtools/)
- [Turn on Custom Object Formatter in Firefox DevTools](https://fxdx.dev/firefox-devtools-custom-object-formatters/)
## Type Support for `.vue` Imports in TS
TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types.
## Customize configuration
See [Vite Configuration Reference](https://vite.dev/config/).
## Project Setup
```sh
npm install
```
**Note**: The `postinstall` script automatically fixes Capacitor configuration files after installation.
## Building for Android and iOS
### Quick Build (Recommended)
Use the unified build script for both platforms:
```bash
# Build and run both platforms on emulator/simulator
./scripts/build.sh --run
# Build both platforms (no run)
./scripts/build.sh
# Build Android only
./scripts/build.sh --android
# Build iOS only
./scripts/build.sh --ios
# Build and run Android on emulator
./scripts/build.sh --run-android
# Build and run iOS on simulator
./scripts/build.sh --run-ios
```
**See**: `docs/BUILD_QUICK_REFERENCE.md` for detailed build instructions.
### Manual Build Steps
#### Capacitor Sync
**Important**: Use the wrapper script instead of `npx cap sync` directly to automatically fix plugin paths:
```sh
# Sync both platforms
npm run cap:sync
# Sync Android only
npm run cap:sync:android
# Sync iOS only
npm run cap:sync:ios
```
This will:
1. Run `npx cap sync` (or platform-specific sync)
2. Automatically fix `capacitor.settings.gradle` (corrects plugin path from `android/` to `android/plugin/`)
3. Ensure `capacitor.plugins.json` has the correct plugin registration
If you run `npx cap sync` directly, you can manually fix afterward:
```sh
node scripts/fix-capacitor-plugins.js
```
### Compile and Hot-Reload for Development
```sh
npm run dev
```
### Type-Check, Compile and Minify for Production
```sh
npm run build
```
### Lint with [ESLint](https://eslint.org/)
```sh
npm run lint
```
## ADB Commands for Android Testing
**Package Name**: `com.timesafari.dailynotification.test`
### Check Device Connection
```sh
adb devices
```
### Install App
Install the debug APK to a connected device or emulator:
```sh
# From project root
cd android
./gradlew installDebug
# Or from test-apps/daily-notification-test directory
cd android && ./gradlew installDebug
```
### List Installed Packages
Check if the app is installed:
```sh
# List all packages (filter for this app)
adb shell pm list packages | grep timesafari
# List only this app's package
adb shell pm list packages com.timesafari.dailynotification.test
```
### Launch/Raise the App
Launch the app or bring it to foreground:
```sh
# Launch the main activity
adb shell am start -n com.timesafari.dailynotification.test/.MainActivity
# Launch with explicit intent
adb shell am start -a android.intent.action.MAIN -n com.timesafari.dailynotification.test/.MainActivity
```
### Uninstall App
Remove the app from the device:
```sh
# Uninstall by package name
adb uninstall com.timesafari.dailynotification.test
# Force uninstall (if regular uninstall fails)
adb shell pm uninstall -k --user 0 com.timesafari.dailynotification.test
```
### Additional Useful ADB Commands
**View App Logs**:
```sh
# Filter logs for this app
adb logcat | grep -E "timesafari|DailyNotification|DNP"
# Clear logs before testing
adb logcat -c
```
**Check App Info**:
```sh
# Get app version and info
adb shell dumpsys package com.timesafari.dailynotification.test | grep -A 5 "versionName\|versionCode"
```
**Force Stop App**:
```sh
# Force stop the app (useful for testing recovery scenarios)
adb shell am force-stop com.timesafari.dailynotification.test
```
**Clear App Data**:
```sh
# Clear app data (resets to fresh install state)
adb shell pm clear com.timesafari.dailynotification.test
```