Files
daily-notification-plugin/test-apps/daily-notification-test/README.md
Jose Olarte III d8a0eaf413 refactor(android,ios): rename package com.timesafari to org.timesafari.dailynotification
- Android: move plugin source to org/timesafari/dailynotification, update
  namespace, manifest package, and all package/imports; change intent actions
  to org.timesafari.daily.NOTIFICATION and DISMISS
- iOS: update bundle IDs, BGTask identifiers, subsystem labels, and queue
  names in Plugin and Xcode projects
- Capacitor: update plugin class registration and appIds in configs
- Test apps (android-test-app, daily-notification-test, ios-test-app):
  applicationId/bundleId, manifests, ProGuard, scripts, and docs
- Docs: bulk update references; add CONSUMING_APP_MIGRATION_COM_TO_ORG.md
  for consuming app migration

BREAKING CHANGE: Consuming apps must update plugin class to
org.timesafari.dailynotification.DailyNotificationPlugin, manifest
receivers/actions, and iOS BGTask identifiers per migration doc.
2026-03-12 14:26:07 +08:00

4.5 KiB

daily-notification-test

This template should help get you started developing with Vue 3 in Vite.

VS Code + Vue (Official) (and disable Vetur).

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 to make the TypeScript language service aware of .vue types.

Customize configuration

See Vite Configuration Reference.

Project Setup

npm install

Note: The postinstall script automatically fixes Capacitor configuration files after installation.

Building for Android and iOS

Use the unified build script for both platforms:

# 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:

# 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:

node scripts/fix-capacitor-plugins.js

Compile and Hot-Reload for Development

npm run dev

Type-Check, Compile and Minify for Production

npm run build

Lint with ESLint

npm run lint

ADB Commands for Android Testing

Package Name: org.timesafari.dailynotification.test

Check Device Connection

adb devices

Install App

Install the debug APK to a connected device or emulator:

# 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:

# 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 org.timesafari.dailynotification.test

Launch/Raise the App

Launch the app or bring it to foreground:

# Launch the main activity
adb shell am start -n org.timesafari.dailynotification.test/.MainActivity

# Launch with explicit intent
adb shell am start -a android.intent.action.MAIN -n org.timesafari.dailynotification.test/.MainActivity

Uninstall App

Remove the app from the device:

# Uninstall by package name
adb uninstall org.timesafari.dailynotification.test

# Force uninstall (if regular uninstall fails)
adb shell pm uninstall -k --user 0 org.timesafari.dailynotification.test

Additional Useful ADB Commands

View App Logs:

# Filter logs for this app
adb logcat | grep -E "timesafari|DailyNotification|DNP"

# Clear logs before testing
adb logcat -c

Check App Info:

# Get app version and info
adb shell dumpsys package org.timesafari.dailynotification.test | grep -A 5 "versionName\|versionCode"

Force Stop App:

# Force stop the app (useful for testing recovery scenarios)
adb shell am force-stop org.timesafari.dailynotification.test

Clear App Data:

# Clear app data (resets to fresh install state)
adb shell pm clear org.timesafari.dailynotification.test