I'm trying to get an app notarized, which fails with this error:
The signature of the binary is invalid.
However, locally checking the signature does succeed:
$ codesign -vvv --deep --strict TheApp.app
[…]
TheApp.app: valid on disk
TheApp.app: satisfies its Designated Requirement
Performing this check on every single item in the app's MacOS folder also succeeds.
Context: embedded prebuilt binaries
Now, the app has something unusual about it: it embeds prebuilt binaries, arranged in various nested folders. So, the app bundle's MacOS folder actually contains another folder with a whole tree of executables and libraries:
Removing these (before building) does fix the notarization issue, but obviously I'd like to keep them in.
I did my best to properly sign these items:
At build time, they're copied into the product by a Copy Files phase (but not signed), then signed by a script phase
That signing uses the same signing identity as the running Xcode build, and enables the hardened runtime
The app builds and runs correctly, even as a release build
The app has runtime hardening and app sandbox enabled
How should I go about diagnosing the notarization issue?
Topic:
Code Signing
SubTopic:
Notarization