fix(ios): enable Capacitor plugin discovery via CAPBridgedPlugin conformance

Capacitor iOS was not discovering DailyNotificationPlugin because it did not
conform to the CAPBridgedPlugin protocol required for runtime discovery.

Changes:
- Add @objc extension to DailyNotificationPlugin implementing CAPBridgedPlugin
  with identifier, jsName, and pluginMethods properties
- Force-load plugin framework in AppDelegate before Capacitor initializes
- Remove duplicate BGTaskScheduler registration from AppDelegate (plugin handles it)
- Update podspec to use dynamic framework (static_framework = false)
- Add diagnostic logging to verify plugin discovery

Result: Plugin is now discovered by Capacitor and all methods are accessible
from JavaScript. Verified working with checkPermissionStatus() method.

Files modified:
- ios/Plugin/DailyNotificationPlugin.swift: Added CAPBridgedPlugin extension
- test-apps/ios-test-app/ios/App/App/AppDelegate.swift: Force-load + diagnostics
- ios/DailyNotificationPlugin.podspec: Dynamic framework setting
- doc/directives/0003-iOS-Android-Parity-Directive.md: Documented solution
This commit is contained in:
Server
2025-11-13 23:29:03 -08:00
parent 5844b92e18
commit ed25b1385a
4 changed files with 349 additions and 21 deletions

View File

@@ -13,5 +13,8 @@ Pod::Spec.new do |s|
s.swift_version = '5.1'
s.xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) COCOAPODS=1' }
s.deprecated = false
s.static_framework = true
# Set to false so Capacitor can discover the plugin
# Capacitor iOS does not scan static frameworks for plugin discovery
# Dynamic frameworks are discoverable via Objective-C runtime scanning
s.static_framework = false
end