Zweiter Befund: App ohne App-Gruppe signiert; Portal-Schritt 3 fehlt noch

This commit is contained in:
Paul Nothaft
2026-09-02 14:46:06 +02:00
parent 1f87f6d1c7
commit 25aa118e4b
+33
View File
@@ -7879,3 +7879,36 @@ app's version comparison against `sensor.audi_dashboard_app_version` will surfac
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**.
### Second defect, and it would have failed silently: the app was signed without the group
After the portal work the archive succeeded — and the resulting `.ipa` was **wrong**. Measured on the
finished bundle rather than trusted: `codesign -d --entitlements :- Payload/App.app` returned only
`application-identifier`, `team-identifier`, `get-task-allow` — **no**
`com.apple.security.application-groups`, while the extension had it. The share flow would have
reported success and the Tanken screen would have stayed empty, with nothing anywhere saying why.
Cause: the pbxproj quotes values inconsistently. `addTarget` writes
`PRODUCT_BUNDLE_IDENTIFIER = "app.datametric360.teilen";` (quoted); Capacitor's own project has
`PRODUCT_BUNDLE_IDENTIFIER = app.datametric360;` (bare). The script compared against the quoted form
for both, so the App target never matched and never got `CODE_SIGN_ENTITLEMENTS`. Now compared
unquoted; verified on a regenerated project — four `CODE_SIGN_ENTITLEMENTS` (Debug+Release on both
targets) instead of two.
**Lesson worth keeping: verify entitlements on the built artifact, not on the project file.** The
archive succeeded either way; only the `.ipa` told the truth.
### Where it stands: portal step 3 is still missing (2026-09-02)
Steps 1 and 2 are done, step 3 is not — proven by decoding the freshly fetched profiles, which is the
quickest way to check this without the portal:
```
iOS Team Provisioning Profile: app.datametric360.teilen | groups: ['group.app.datametric360']
iOS Team Provisioning Profile: app.datametric360 | groups: []
```
The extension's App ID carries the group; the **main** App ID `app.datametric360` does not. Until
App Groups is enabled on it in the portal and `group.app.datametric360` assigned, the archive fails
with the same entitlement mismatch, now naming target `App` instead of `DataMetric360Share`. The
delivered `.ipa` therefore still holds at 2026.8.30.8.