Plugin discovery : MainViewController sous-classe CAPBridgeViewController

Capacitor 8 n'auto-découvre pas les plugins in-app Swift (qui ne sont pas
des npm packages). Les plugins définis dans le target App doivent être
enregistrés manuellement via une sous-classe de CAPBridgeViewController
qui override capacitorDidLoad().

Ajouts :
- ios/App/App/MainViewController.swift : sous-classe qui registers
  CoachWorkoutKitPlugin() dans capacitorDidLoad()
- Main.storyboard : customClass pointe sur MainViewController (module
  'App' target) au lieu de CAPBridgeViewController (module Capacitor)
- project.pbxproj : 4 entrées pour MainViewController.swift (BuildFile,
  FileReference, group, Sources phase)

Après rebuild, Capacitor.Plugins.CoachWorkoutKit sera dispo en JS.
This commit is contained in:
Sylvain Bettinelli
2026-05-08 10:05:06 +00:00
parent 483ad09c20
commit 83b5260bc1
3 changed files with 21 additions and 1 deletions

View File

@@ -0,0 +1,16 @@
// MainViewController.swift
// Sous-classe de CAPBridgeViewController pour enregistrer manuellement les
// plugins Capacitor in-app (i.e. plugins définis directement dans le target
// App, pas en npm package). Capacitor 8 n'auto-découvre pas ces plugins,
// faut les registrer ici dans capacitorDidLoad().
import UIKit
import Capacitor
class MainViewController: CAPBridgeViewController {
override func capacitorDidLoad() {
// Plugin natif WorkoutKit pousse des workouts intervalles vers
// l'Apple Watch (cf. CoachWorkoutKit.swift).
bridge?.registerPluginInstance(CoachWorkoutKitPlugin())
}
}