# 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 ```bash cd test-apps/ios-test-app/App pod install ``` ### 2. Build Plugin First ```bash # From project root ./scripts/build-native.sh --platform ios ``` ### 3. Open in Xcode ```bash 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 ```bash # 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 ```bash cd test-apps/ios-test-app ./scripts/build-and-deploy.sh ``` ## Plugin Integration The plugin is integrated via CocoaPods: ```ruby # 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: ```bash ./scripts/build-native.sh --platform ios ``` ### CocoaPods Issues ```bash 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 - [Android Test App](../android-test-app/README.md) - [Vue 3 Test App](../daily-notification-test/README.md) - [Plugin Documentation](../../README.md)