When the app and both test bundles share the local ICCeryCore package, Xcode builds it as a dynamic package-product framework (PackageFrameworks/) that is not embedded in ICCery.app — so any launch outside the test host (UI tests, manual run) dies in dyld. The shipped DMG escapes this because the Release package build only builds the app target, which links the package statically.
Fix: .library(name: "ICCeryCore", type: .static, ...) in Packages/ICCeryCore/Package.swift. Verified locally: xcodebuild build succeeds and otool -L on the produced binary no longer references the PackageProduct framework — nothing to embed, no dyld dependency.
Fixes #117.
The app crashed at launch on the macOS 12 VM:
```
Termination Reason: DYLD, Code 1 Library missing
Library not loaded: '@rpath/ICCeryCore_7B5160A3714042B2_PackageProduct.framework/...'
```
When the app and both test bundles share the local `ICCeryCore` package, Xcode builds it as a dynamic package-product framework (`PackageFrameworks/`) that is not embedded in `ICCery.app` — so any launch outside the test host (UI tests, manual run) dies in dyld. The shipped DMG escapes this because the Release package build only builds the app target, which links the package statically.
Fix: `.library(name: "ICCeryCore", type: .static, ...)` in `Packages/ICCeryCore/Package.swift`. Verified locally: `xcodebuild build` succeeds and `otool -L` on the produced binary no longer references the PackageProduct framework — nothing to embed, no dyld dependency.
When the app and test bundles share the local ICCeryCore package, Xcode
builds it as a dynamic package-product framework that is not embedded
in ICCery.app — the app crashes in dyld at launch when run outside the
test host (macOS 12 VM crash, run 31985 products). Declare the product
.static so each consumer links it directly.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
gronod
merged commit c3c9bbc5ba into milestone/m9-monterey2026-09-12 09:17:24 +01:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Fixes #117.
The app crashed at launch on the macOS 12 VM:
When the app and both test bundles share the local
ICCeryCorepackage, Xcode builds it as a dynamic package-product framework (PackageFrameworks/) that is not embedded inICCery.app— so any launch outside the test host (UI tests, manual run) dies in dyld. The shipped DMG escapes this because the Release package build only builds the app target, which links the package statically.Fix:
.library(name: "ICCeryCore", type: .static, ...)inPackages/ICCeryCore/Package.swift. Verified locally:xcodebuild buildsucceeds andotool -Lon the produced binary no longer references the PackageProduct framework — nothing to embed, no dyld dependency.