Files
daily-notification-plugin/test-apps/ios-test-app/SETUP.md
Matthew Raymer a166f3be9a feat(ios): create iOS test app structure and synchronization documentation
Created standalone iOS test app structure matching android-test-app:
- Added ios-test-app directory with README, setup guide, and build scripts
- Created comprehensive iOS synchronization status documentation
- Documented API method gaps between Android (52) and iOS (9 methods)
- Added iOS setup guide for Vue 3 test app

New files:
- test-apps/ios-test-app/ - Standalone iOS test app structure
- docs/IOS_SYNC_STATUS.md - Detailed API comparison and status tracking
- docs/IOS_SYNC_SUMMARY.md - Summary of iOS synchronization work
- test-apps/daily-notification-test/docs/IOS_SETUP.md - Vue app iOS setup

iOS test environments are now ready for setup. Test apps need Xcode project
generation via Capacitor CLI or copying from ios/App.

Next steps: Generate Xcode projects and implement missing API methods.
2025-11-11 01:30:31 -08:00

3.1 KiB

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.

Step 1: Generate iOS App

cd test-apps/ios-test-app
npx @capacitor/create-app@latest App --template blank

Step 2: Configure Plugin

Edit App/Podfile:

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

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:

{
  "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:

# 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

cd test-apps/ios-test-app/App
open App.xcworkspace
# Then build and run in Xcode

Using Command Line

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

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:

./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: 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