194 lines
4.5 KiB
Markdown
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
|
|
```
|