Abschluss festhalten: Teilen-Erweiterung laeuft, fuenf Befunde dokumentiert
This commit is contained in:
@@ -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
|
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
|
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
|
with the same entitlement mismatch, now naming target `App` instead of `DataMetric360Share`.
|
||||||
delivered `.ipa` therefore still holds at 2026.8.30.8.
|
|
||||||
|
### 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.
|
||||||
|
|||||||
Reference in New Issue
Block a user