diff --git a/ios/App/App/CoachWorkoutKit.swift b/ios/App/App/CoachWorkoutKit.swift index 9057d21..6ac84b4 100644 --- a/ios/App/App/CoachWorkoutKit.swift +++ b/ios/App/App/CoachWorkoutKit.swift @@ -153,25 +153,20 @@ public class CoachWorkoutKitPlugin: CAPPlugin, CAPBridgedPlugin { // iOS la 1re fois, return immédiat si déjà accordé). do { try await WorkoutScheduler.shared.requestAuthorization() + NSLog("[CoachWorkoutKit] requestAuthorization OK") } catch { NSLog("[CoachWorkoutKit] requestAuthorization failed: \(error)") } - // 9. preview(plan) (iOS 17.4+) ouvre la sheet système 'Ajouter à - // mes workouts' qui ajoute le workout à la **Custom Workouts** - // library de l'Apple Watch (vs schedule() qui le met juste dans - // le calendrier Fitness sans le rendre lançable de manière standalone). - if #available(iOS 17.4, *) { - try await WorkoutScheduler.shared.preview(plan) - } else { - // Fallback iOS 17.0-17.3 : schedule pour "maintenant". - // L'user verra le workout dans le Workout app au lancement (top - // de la liste des activités) mais pas dans Custom Workouts. - let now = Calendar.current.dateComponents( - [.year, .month, .day, .hour, .minute], - from: Date() - ) - _ = try await WorkoutScheduler.shared.schedule(plan, at: now) - } + // 9. Schedule le workout. Schedule pour 1 minute dans le futur (vs + // "now") pour s'assurer que la date n'est pas dans le passé au + // moment où le système traite l'event (sinon il peut être ignoré). + let scheduleDate = Date().addingTimeInterval(60) // +1 min + let comps = Calendar.current.dateComponents( + [.year, .month, .day, .hour, .minute, .timeZone], + from: scheduleDate + ) + let scheduled = try await WorkoutScheduler.shared.schedule(plan, at: comps) + NSLog("[CoachWorkoutKit] schedule OK : \(scheduled.id) at \(scheduled.date)") } }