Runbook : la cible watchOS s'appelle CoachWatchWidgetsExtension, pas CoachWatchWidgets

Vérifié dans project.pbxproj avant d'envoyer Sylvain dans Xcode : les quatre
cibles réelles sont App, CoachLiveActivity, CoachWatch et
CoachWatchWidgetsExtension. Le runbook donnait le nom du DOSSIER
(CoachWatchWidgets) pour celui de la cible — il aurait cherché un intitulé
inexistant dans l'inspecteur de Target Membership, à l'étape précisément
décrite comme celle qui décide de tout.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sylvain Bettinelli
2026-09-25 07:02:29 +00:00
parent 98b1cd0c89
commit 0d34908f4f

View File

@@ -3,6 +3,12 @@
**Écrit le 25/09/2026, depuis Linux.** Le code Swift est committé ; il reste les **Écrit le 25/09/2026, depuis Linux.** Le code Swift est committé ; il reste les
étapes Xcode, qui ne peuvent pas se faire d'ici. étapes Xcode, qui ne peuvent pas se faire d'ici.
> ⚠️ **Nom des cibles, vérifié le 25/09** : la cible watchOS s'appelle
> **`CoachWatchWidgetsExtension`** — le DOSSIER, lui, s'appelle
> `CoachWatchWidgets`. Ce runbook disait d'abord le nom du dossier ; corrigé.
> Les quatre cibles réelles : `App`, `CoachLiveActivity`, `CoachWatch`,
> `CoachWatchWidgetsExtension`.
> ⛔ **Rien de ce code n'a été compilé.** `AppIntents`, `WidgetKit` et `SwiftUI` > ⛔ **Rien de ce code n'a été compilé.** `AppIntents`, `WidgetKit` et `SwiftUI`
> sont des frameworks Apple, absents de Swift pour Linux — le CLAUDE.md de ce > sont des frameworks Apple, absents de Swift pour Linux — le CLAUDE.md de ce
> dépôt le dit. Ce qui a été vérifié à la place, par lecture croisée des > dépôt le dit. Ce qui a été vérifié à la place, par lecture croisée des
@@ -39,7 +45,7 @@ Xcode ouvert).
### 1. Target Membership — c'est l'étape qui décide de tout ### 1. Target Membership — c'est l'étape qui décide de tout
| Fichier | App | CoachLiveActivity | CoachWatchWidgets | | Fichier | App | CoachLiveActivity | CoachWatchWidgetsExtension |
|---|:--:|:--:|:--:| |---|:--:|:--:|:--:|
| `CoachIntents.swift` | ✅ | ✅ | ✅ | | `CoachIntents.swift` | ✅ | ✅ | ✅ |
| `CoachAppShortcuts.swift` | ✅ | ❌ | ❌ | | `CoachAppShortcuts.swift` | ✅ | ❌ | ❌ |
@@ -51,12 +57,12 @@ Xcode ouvert).
seul `AppShortcutsProvider` par application ; un second dans une extension seul `AppShortcutsProvider` par application ; un second dans une extension
produirait au mieux un doublon. produirait au mieux un doublon.
⚠️ **`CoachQuickLog.swift` doit être dans `CoachWatchWidgets`**, sinon le widget ⚠️ **`CoachQuickLog.swift` doit être dans `CoachWatchWidgetsExtension`**, sinon le widget
de la montre compile mais n'écrit nulle part. Son en-tête le réclamait déjà. de la montre compile mais n'écrit nulle part. Son en-tête le réclamait déjà.
### 2. Vérifier l'App Group sur la cible Watch ### 2. Vérifier l'App Group sur la cible Watch
`group.ch.hypnotruck.coach` sur **CoachWatch** ET **CoachWatchWidgets**. `group.ch.hypnotruck.coach` sur **CoachWatch** ET **CoachWatchWidgetsExtension**.
Vérifié depuis Linux le 25/09 : les quatre `.entitlements` le portent et les Vérifié depuis Linux le 25/09 : les quatre `.entitlements` le portent et les
`CODE_SIGN_ENTITLEMENTS` sont câblés. À reconfirmer dans Signing & Capabilities. `CODE_SIGN_ENTITLEMENTS` sont câblés. À reconfirmer dans Signing & Capabilities.