You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fix macOS framework layout so the inner bundle can be signed (#39)
The signing job failed on every python-macos-dart archive with:
Python.framework: unsealed contents present in the root directory of
an embedded framework
macOS frameworks are VERSIONED bundles: everything at the framework root must be
a symlink into Versions/Current, and only `Versions` itself may be a real
directory. package-macos-for-dart.sh wrote the overlaid `Modules` and the public
`Headers` as real directories at the root. That was invisible while only the
outer xcframework was signed -- the outer seal does not care -- and became fatal
the moment the inner framework was signed in its own right.
They now go into Versions/Current with symlinks at the root, which is both what
codesign requires and what CPython's own macOS framework already does for Headers
and Resources. Consumers resolve Headers/ and Modules/ through the symlinks
exactly as before.
Also fixes the verifier, which was wrong in a way the same run exposed: it probed
for `_CodeSignature` or `Versions/A/_CodeSignature`, but a versioned bundle's
version directory is not always "A" -- CPython's macOS framework uses
Versions/3.14 -- so a correctly signed macOS framework was reported as unsigned.
It now asks `codesign -dv`, which is layout-agnostic and is the actual question.
Verified with the real identity against the released 20260729 macOS archive:
inner and outer both sign and verify, dart_bridge v1.7.1 (Versions/A) still
verifies, and stripping the inner signature still fails the run.