# iOS Test App Setup Guide **Author**: Matthew Raymer **Date**: 2025-11-04 ## Overview This guide explains how to set up the standalone iOS test app for the DailyNotification plugin. The iOS test app mirrors the Android test app (`android-test-app`) functionality. ## Option 1: Use Capacitor CLI (Recommended) ### Step 1: Generate iOS App ```bash cd test-apps/ios-test-app npx @capacitor/create-app@latest App --template blank ``` ### Step 2: Configure Plugin Edit `App/Podfile`: ```ruby platform :ios, '13.0' use_frameworks! def capacitor_pods pod 'Capacitor', :path => '../../../node_modules/@capacitor/ios' pod 'CapacitorCordova', :path => '../../../node_modules/@capacitor/ios' pod 'DailyNotificationPlugin', :path => '../../../ios' end target 'App' do capacitor_pods end ``` ### Step 3: Install Dependencies ```bash cd App pod install ``` ### Step 4: Copy Test Interface Copy the test HTML from `test-apps/android-test-app/app/src/main/assets/public/index.html` to `App/App/public/index.html`. ### Step 5: Configure Capacitor Edit `App/App/capacitor.config.json`: ```json { "appId": "com.timesafari.dailynotification", "appName": "DailyNotification Test App", "webDir": "public", "plugins": { "DailyNotification": { "debugMode": true, "enableNotifications": true } } } ``` ## Option 2: Copy from ios/App (Quick Start) If `ios/App` already exists, you can copy it: ```bash # From project root cp -r ios/App test-apps/ios-test-app/App cd test-apps/ios-test-app/App pod install ``` Then update: - `App/Info.plist` - Bundle ID: `com.timesafari.dailynotification` - `App/capacitor.config.json` - App ID and name - `App/public/index.html` - Copy test interface from Android test app ## Build and Run ### Using Xcode ```bash cd test-apps/ios-test-app/App open App.xcworkspace # Then build and run in Xcode ``` ### Using Command Line ```bash cd test-apps/ios-test-app/App xcodebuild -workspace App.xcworkspace \ -scheme App \ -configuration Debug \ -sdk iphonesimulator \ -destination 'platform=iOS Simulator,name=iPhone 15 Pro' \ clean build ``` ### Using Build Script ```bash cd test-apps/ios-test-app ./scripts/build-and-deploy.sh ``` ## Plugin Registration The plugin is automatically registered via Capacitor when included in `Podfile`. No manual registration needed. ## Test Interface The test interface (`App/App/public/index.html`) provides buttons for: - Plugin availability testing - Configuration - Status checking - Notification scheduling - Permission management ## Troubleshooting ### Plugin Not Found Ensure plugin is built: ```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: `rm -rf ~/Library/Developer/Xcode/DerivedData` 3. Rebuild ## Next Steps 1. Build plugin: `./scripts/build-native.sh --platform ios` 2. Generate or copy iOS app structure 3. Install CocoaPods dependencies 4. Build and run in Xcode or simulator 5. Test plugin functionality