diff --git a/AGENTS.md b/AGENTS.md index 6d28147..e46e09d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -7843,3 +7843,39 @@ fünf in einer Reihe. In `Reifen.tsx` stand ein reines ``; das Panel hat an derselben Stelle seit jeher `data-bildklick`. Ersetzen und Löschen waren von dort aus gar nicht erreichbar — jetzt `BildMitMenue`. + +--- + +## AK. Share extension: first Mac run, one script bug fixed, build blocked on the Apple portal (2026-09-02) + +`scripts/ios-teilen-einrichten.mjs` ran on a Mac for the first time (it was written without macOS +access, and `docs/SHARE_EXTENSION.md` said so). **Almost all of it worked on the first attempt** — +target creation, entitlements on both targets, the `datametric360://` URL scheme, and the idempotence +guard. Exactly one defect, since fixed: the extension was embedded **twice**, because +`addTarget(..., "app_extension", ...)` already creates a PlugIns copy phase on the first target and +the script added a second one. Xcode refuses that with `error: Unexpected duplicate tasks` (two +`ValidateEmbeddedBinary` notes on the same `.appex`). Removing the explicit `addBuildPhase` call +fixed it; verified on the regenerated project — one `dstSubfolderSpec = 13` phase instead of two. + +**The build is now blocked on three one-time portal steps only the owner can do**, exactly as +`docs/SHARE_EXTENSION.md` predicted. This is the only error left: + +``` +Provisioning profile "iOS Team Provisioning Profile: app.datametric360.teilen" doesn't match +the entitlements file's value for the com.apple.security.application-groups entitlement. +``` + +Apple auto-created the App ID for the extension, but its profile carries no app-group entitlement +because the group does not exist in the portal yet. Needed: App Group `group.app.datametric360`; App +ID `app.datametric360.teilen` with the App Groups capability pointing at it; and the same capability +on the existing `app.datametric360`. No code change substitutes for this — an entitlement is only +valid if the profile grants it. Afterwards delete the cached `.mobileprovision` files (the script's +"Alte Bereitstellungsprofile wegraeumen" step already does) or the stale ones get reused, per +section AI. + +**Consequence to keep visible: the shipped app is now behind the repo.** +`companion-app/auslieferung/App.ipa` still carries **2026.8.30.8**; the repo is at **2026.9.2.7**. The +app's version comparison against `sensor.audi_dashboard_app_version` will surface that rather than +fail silently — the mechanism working as designed — but until the portal steps happen, 44 commits' +worth of work (Standort/geocoding, consumption calibration, trip-detection rework, the Sheet +component, the share sheet itself) is built and tested but **not on the phone**.