Files
daily-notification-plugin/test-apps/ios-test-app
Matthew 92bb566631 fix(ios): configure method parameter parsing and improve build process
Fix configure() method to read parameters directly from CAPPluginCall
instead of expecting nested options object, matching Android implementation.

Improve build process to ensure canonical UI is always copied:
- iOS build script: Copy www/index.html to test app before build
- Android build.gradle: Add copyCanonicalUI task to run before build
- Ensures test apps always use latest UI from www/index.html

This fixes the issue where configure() was returning 'Configuration
options required' error because it expected a nested options object
when Capacitor passes parameters directly on the call object.
2025-11-19 20:09:01 -08:00
..

iOS Test App

Status: SETUP COMPLETE
Ready for: Building and testing


Setup Status

Basic structure created
Capacitor iOS platform added
Info.plist configured with BGTask identifiers
AppDelegate configured for background tasks
Podfile configured with plugin reference
⚠️ CocoaPods installation required


Next Steps

1. Install CocoaPods (if not installed)

sudo gem install cocoapods

2. Install Pod Dependencies

cd ios/App
pod install
cd ../..

3. Build and Run

Option A: Using Build Script

# From repo root
./scripts/build-ios-test-app.sh --simulator

Option B: Using Xcode

cd ios/App
open App.xcworkspace
# Then press Cmd+R in Xcode

Plugin Registration

The plugin is registered via:

  • Podfile: pod 'DailyNotificationPlugin', :path => '../../../ios/Plugin'
  • Capacitor Config: capacitor.config.json includes plugin entry
  • AppDelegate: Background tasks registered

Configuration Files

  • Info.plist: Configured with BGTask identifiers and background modes
  • AppDelegate.swift: Background task registration added
  • Podfile: Plugin reference added
  • capacitor.config.json: Plugin enabled

Troubleshooting

CocoaPods Not Installed

Error: command not found: pod

Solution:

sudo gem install cocoapods

Plugin Not Found

Error: Build fails with plugin not found

Solution:

  1. Verify plugin exists at ../../../ios/Plugin/
  2. Run pod install in ios/App/ directory
  3. Clean build folder in Xcode (Cmd+Shift+K)

Build Failures

Solution:

  1. Run pod install in ios/App/ directory
  2. Clean build folder (Cmd+Shift+K)
  3. Verify Capacitor plugin path

File Structure

ios-test-app/
├── ios/
│   └── App/
│       ├── App.xcworkspace      # Open this in Xcode
│       ├── Podfile               # CocoaPods dependencies
│       └── App/
│           ├── AppDelegate.swift # Background task registration
│           ├── Info.plist        # BGTask identifiers configured
│           └── public/
│               └── index.html    # Test UI
├── App/
│   └── App/
│       └── Public/
│           └── index.html        # Source HTML
└── capacitor.config.json         # Capacitor configuration

References

  • Requirements: doc/test-app-ios/IOS_TEST_APP_REQUIREMENTS.md
  • Testing Guide: doc/IOS_PHASE1_TESTING_GUIDE.md
  • Build Script: scripts/build-ios-test-app.sh

Status: READY FOR BUILDING (after CocoaPods installation)