Files
daily-notification-plugin/test-apps/ios-test-app
Matthew Raymer 194029423b fix(ios): update capacitor config and fix plugin initialization
Updated Capacitor configuration and HTML initialization:

Capacitor Config:
- Changed webDir from 'www' to 'public' to match actual directory structure
- Config now correctly points to App/App/public/ directory

HTML Initialization:
- Removed immediate plugin assignment (was failing because Capacitor not loaded)
- Added Capacitor script tags (capacitor.js, capacitor_plugins.js)
- Added initialization script that waits for Capacitor to be ready
- Plugin is now set after Capacitor loads successfully

Fixes:
- Black screen: Capacitor scripts now load before plugin access
- Plugin errors: window.Capacitor was undefined, now waits for it
- Initialization: Proper async loading of Capacitor runtime

Note: capacitor.js and capacitor_plugins.js will be generated by Capacitor
during build or can be copied from node_modules if needed
2025-11-11 20:07:03 -08:00
..

iOS Test App for DailyNotification Plugin

Author: Matthew Raymer
Date: 2025-11-04
Version: 1.0.0

Overview

Standalone iOS test application for the DailyNotification Capacitor plugin. This app provides an interactive testing interface for all plugin features, similar to the Android test app (android-test-app).

Structure

ios-test-app/
├── App/                    # Xcode project directory
│   ├── App/               # Main app source
│   │   ├── AppDelegate.swift
│   │   ├── ViewController.swift
│   │   ├── SceneDelegate.swift
│   │   ├── Info.plist
│   │   └── public/        # Web assets
│   │       └── index.html
│   ├── App.xcodeproj/     # Xcode project
│   ├── App.xcworkspace/   # CocoaPods workspace
│   └── Podfile            # CocoaPods dependencies
├── scripts/               # Build scripts
└── README.md             # This file

Prerequisites

  • Xcode 14.0 or later
  • CocoaPods (gem install cocoapods)
  • Node.js (for Capacitor CLI)
  • iOS 13.0+ deployment target

Setup

1. Install CocoaPods Dependencies

cd test-apps/ios-test-app/App
pod install

2. Build Plugin First

# From project root
./scripts/build-native.sh --platform ios

3. Open in Xcode

cd test-apps/ios-test-app/App
open App.xcworkspace

Building

Using Xcode

  1. Open App.xcworkspace in Xcode
  2. Select target device/simulator
  3. Build and run (⌘R)

Using Command Line

# Build for simulator
xcodebuild -workspace App.xcworkspace \
    -scheme App \
    -configuration Debug \
    -sdk iphonesimulator \
    -destination 'platform=iOS Simulator,name=iPhone 15 Pro' \
    clean build

# Install on simulator
APP_PATH=$(find build -name "*.app" -type d | head -1)
xcrun simctl install booted "$APP_PATH"
xcrun simctl launch booted com.timesafari.dailynotification

Using Build Script

cd test-apps/ios-test-app
./scripts/build-and-deploy.sh

Plugin Integration

The plugin is integrated via CocoaPods:

# Podfile
pod 'DailyNotificationPlugin', :path => '../../../ios'

Features

  • Interactive plugin testing interface
  • Plugin diagnostics and status checking
  • Notification scheduling and management
  • Permission testing and management
  • Comprehensive logging and debugging

Testing

The test interface is available at App/App/public/index.html and provides buttons for:

  • Plugin availability testing
  • Configuration
  • Status checking
  • Notification scheduling
  • Permission management
  • Channel management

Troubleshooting

Plugin Not Found

Ensure the plugin is built first:

./scripts/build-native.sh --platform ios

CocoaPods Issues

cd test-apps/ios-test-app/App
pod deintegrate
pod install

Build Errors

  1. Clean build folder in Xcode (⌘⇧K)
  2. Delete derived data
  3. Rebuild

See Also