Abschluss festhalten: Teilen-Erweiterung laeuft, fuenf Befunde dokumentiert

This commit is contained in:
Paul Nothaft
2026-09-02 15:05:27 +02:00
parent c72dbc7963
commit e28abdce25
+31 -2
View File
@@ -7910,5 +7910,34 @@ 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.
with the same entitlement mismatch, now naming target `App` instead of `DataMetric360Share`.
### Resolved the same day — and two more silent defects on the way
Owner completed portal step 3; from there the remaining failures were all in the setup script, and
**none of them made the archive fail**. Recorded because that is the pattern worth remembering:
3. **The `.appex` had no executable.** `codesign -d` reporting `Executable=.../Info.plist` gave it
away; the bundle held only `Info.plist`, `_CodeSignature` and the profile, while its
`CFBundleExecutable` promised a binary. Cause: `addSourceFile(path, opt, group)` in the `xcode`
package only files the source into the **group** when a group is passed — it never attaches it to
a Sources phase. The `PBXBuildFile` existed but was orphaned and every Sources phase of the target
was empty. Fixed by handing the source to `addBuildPhase` directly.
4. **Then the path was wrong**`Build input file cannot be found: ios/App/ShareViewController.swift`.
Without a group, Xcode resolves a bare filename against the project root; the file lives in
`DataMetric360Share/`. Fixed by passing the project-relative path.
5. **Then Swift itself failed** — and only now, because the file had never been compiled before.
The German quotation marks in the size-limit message were mixed: opening `„` (U+201E), closing a
plain ASCII `"` (U+0022), which ends a Swift string literal mid-sentence. Both sides typographic
now.
**Final artifact, verified on the `.ipa` rather than the project (2026.9.2.7):**
`DataMetric360Share.appex` contains a real `Mach-O 64-bit executable arm64`; **both** app and
extension carry `group.app.datametric360`; URL scheme `datametric360` present; ad-hoc profile with
both devices to 2027-08-29; `codesign --verify --deep --strict` clean. Served from Gitea with a
matching SHA-256 and `bundle-version 2026.9.2.7` in the manifest.
**The rule this whole sequence argues for: for native iOS changes, check the built bundle, never the
build result.** Four of the five defects produced either a successful archive or a silent
misconfiguration; only unzipping the `.ipa` and reading entitlements, binaries and plists exposed
them.