From 2e88a56943d0f57bb7ac021121c5802bb00937a2 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 9 Sep 2026 16:41:12 +0000 Subject: [PATCH] =?UTF-8?q?fix(ios):=20=C3=A9pingle=20volume=5Fcontroller?= =?UTF-8?q?=203.4.1=20pour=20compiler=20sur=20Flutter=203.35?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Premier run du workflow Build iOS : toute la chaîne passe (génération du projet Xcode, Info.plist, CocoaPods, icônes), mais la compilation Swift échoue sur volume_controller 3.4.4, tiré transitivement par media_kit_video : Cannot find type 'FlutterSceneLifeCycleDelegate' in scope Value of type 'any FlutterPluginRegistrar' has no member 'addSceneDelegate' Ces API sont apparues dans Flutter 3.38. volume_controller les utilise depuis la 3.4.2 sans relever sa contrainte `flutter:` (toujours >=3.0.0), si bien que pub la sélectionne sur le Flutter 3.35.3 des workflows. La 3.4.1 est la dernière version sans ces appels — vérifié en inspectant les sources iOS des versions 3.4.0 à 3.4.4. Le côté Android du plugin n'utilise pas ces API, ce qui explique que seul le build iOS soit touché. Un balayage des autres plugins à code natif iOS du projet ne remonte que screen_brightness_ios (2.1.3+), absent du graphe depuis que media_kit_video 1.3.x ne dépend plus que de screen_brightness_android. Ajoute par ailleurs au guide iOS la marche à suivre pour un appareil qui n'est pas toujours sur le même réseau que l'ordinateur (SideStore, compte payant). Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01WoXgHivbAphDk9ArgKDg8Q --- IOS_GUIDE.md | 17 +++++++++++++++++ pubspec.yaml | 7 +++++++ 2 files changed, 24 insertions(+) diff --git a/IOS_GUIDE.md b/IOS_GUIDE.md index 1cf4c74..ee7abee 100644 --- a/IOS_GUIDE.md +++ b/IOS_GUIDE.md @@ -94,6 +94,23 @@ Plus simple mais sans renouvellement automatique : installer Sideloadly, branche l'appareil, glisser l'IPA, saisir l'Apple ID, cliquer sur *Start*. À refaire tous les 7 jours. +### Si l'appareil n'est pas toujours sur le même réseau + +C'est la limite d'AltStore : son renouvellement automatique exige qu'AltServer +tourne sur **le même Wi-Fi** que l'appareil. Un iPad souvent hors du réseau +domestique verra l'app expirer au bout de 7 jours, loin de tout ordinateur. + +Deux réponses : + +* **SideStore** — variante d'AltStore qui renouvelle la signature *depuis + l'appareil*, sans AltServer ni réseau local. Un ordinateur reste nécessaire + une seule fois, pour générer le fichier de pairage. Ensuite l'iPad se + débrouille seul, en 4G comme en Wi-Fi. Gratuit, mais l'installation initiale + est plus technique. +* **Compte Apple Developer (99 €/an)** — la signature tient **un an** : il n'y a + plus rien à renouveler, donc plus aucune contrainte de réseau. C'est la + solution la plus simple pour un appareil nomade. + ### Avec un compte Apple Developer (99 €/an) La signature tient **un an** et l'app cesse d'expirer toutes les semaines. Deux diff --git a/pubspec.yaml b/pubspec.yaml index 4f0d133..628e08a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -34,6 +34,13 @@ dependencies: media_kit: ^1.1.11 media_kit_video: ^1.2.5 media_kit_libs_video: ^1.0.5 + # Épinglé : tiré par media_kit_video (^3.0.2). À partir de 3.4.2, le plugin + # iOS utilise FlutterSceneLifeCycleDelegate / addSceneDelegate, des API + # apparues dans Flutter 3.38, sans relever sa contrainte `flutter:` — pub le + # sélectionne donc et la compilation Swift échoue sur le Flutter 3.35.3 des + # workflows. 3.4.1 est la dernière version sans ces appels. + # À relâcher le jour où les workflows passeront à Flutter >= 3.38. + volume_controller: 3.4.1 # UI Components google_fonts: ^6.2.1