The framework contains a static library (fat file) which can't be notarized.
I get the following errors in the log: "The binary is not signed." and "The signature does not include a secure timestamp."
When I build only for one of the two architectures (non-fat file), the notarization works without any issues.
Universal:
% file libtbarcode11.a
libtbarcode11.a: Mach-O universal binary with 2 architectures: [x86_64:current ar archive] [arm64]
libtbarcode11.a (for architecture x86_64): current ar archive
libtbarcode11.a (for architecture arm64): current ar archive
arm64:% lipo -info libtbarcode11.a
Architectures in the fat file: libtbarcode11.a are: x86_64 arm64
% codesign -v --verify libtbarcode11.a
libtbarcode11.a: valid on disk
libtbarcode11.a: satisfies its Designated Requirement
% file libtbarcode11.a
libtbarcode11.a: current ar archive
% lipo -info libtbarcode11.a
Non-fat file: libtbarcode11.a is architecture: arm64
% codesign -v --verify libtbarcode11.a
libtbarcode11.a: valid on disk
libtbarcode11.a: satisfies its Designated Requirement
codesign commands I tried so far:
Code Block codesign --force --verify --verbose --sign "MyDeveloperIDApplicationCert" libtbarcode11.a
Code Block codesign --force --verify --verbose --sign "MyDeveloperIDApplicationCert" --options runtime libtbarcode11.a
Code Block codesign --force --verify --verbose --sign "MyDeveloperIDApplicationCert" --deep libtbarcode11.a
Cool. In that case the easiest workaround is to ship multiple static libraries, one for each architecture. The bug I mentioned below is only triggered by the multi-architecture library.Yes I'm building an SDK.
This might be mildly inconvenient for your static library’s clients — depending on their build system, they might need to lipo the libraries together — but it doesn’t sound like it has a lot of clients anyway (-:
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@apple.com"