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
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
- Open
App.xcworkspacein Xcode - Select target device/simulator
- 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
- Clean build folder in Xcode (⌘⇧K)
- Delete derived data
- Rebuild