Static ICCeryCore breaks hosted test bundle on Xcode 14.2; fix is Debug-only DISABLE_LIBRARY_VALIDATION #119

Closed
opened 2026-09-12 09:22:10 +01:00 by gronod · 0 comments
Owner

Two coupled findings from runs 31992 and 32003 on the macos-12 runner (Xcode 14.2):

  1. The app crashed at test-host launch because the dynamic ICCeryCore package-product framework is unsigned (ad-hoc CODE_SIGN_IDENTITY='-'), and hardened-runtime library validation rejects it (mapped file has no Team ID and is not a platform binary).
  2. Forcing the product .static (#117 fix) instead errors at build time: Swift package product 'ICCeryCore' is linked as a static library by 'ICCeryCoreTests' and 'ICCery' — a static package can't be shared between the app and its hosted test bundle.

Correct fix: keep the product automatic (dynamic when shared), and set DISABLE_LIBRARY_VALIDATION=YES on the ICCery target's Debug config only in project.yml. The embedded framework then loads under the ad-hoc-signed test host. Release packaging is unaffected (hardened runtime stays on; package job builds only the app target).

Two coupled findings from runs 31992 and 32003 on the macos-12 runner (Xcode 14.2): 1. The app crashed at test-host launch because the dynamic `ICCeryCore` package-product framework is unsigned (ad-hoc `CODE_SIGN_IDENTITY='-'`), and hardened-runtime library validation rejects it (`mapped file has no Team ID and is not a platform binary`). 2. Forcing the product `.static` (#117 fix) instead errors at build time: `Swift package product 'ICCeryCore' is linked as a static library by 'ICCeryCoreTests' and 'ICCery'` — a static package can't be shared between the app and its hosted test bundle. Correct fix: keep the product automatic (dynamic when shared), and set `DISABLE_LIBRARY_VALIDATION=YES` on the ICCery target's **Debug** config only in project.yml. The embedded framework then loads under the ad-hoc-signed test host. Release packaging is unaffected (hardened runtime stays on; package job builds only the app target).
gronod added the
Priority
Critical
1
Project/ICCery-v2Bug/Architecture
labels 2026-09-12 09:22:10 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gronod/iccery-v2-mac#119