No Team ID, not a platform binary


Carl Hoefs
 

I've created a dynamic C library, libgauss.dylib, and copied it into /usr/local/lib.

My MacOS 10.14 app builds fine against it, but won't run, complaining that the library doesn't have a "Team ID" and is not a "platform binary".

What does this mean? How can I set this to work?

-Carl




dyld: launch, loading dependent libraries

Dyld Error Message:
Library not loaded: /usr/local/lib/libgauss.dylib
Referenced from: /Users/USER/NIHProject/*/NIHGauss.app/Contents/MacOS/NIHGauss
Reason: no suitable image found. Did find:
/usr/local/lib/libgauss.dylib: code signature in (/usr/local/lib/libgauss.dylib) not valid for use in process using Library Validation: mapping process has no Team ID and is not a platform binary
/usr/local/lib/libgauss.dylib: stat() failed with errno=1
/usr/local/lib/libgauss.dylib: code signature in (/usr/local/lib/libgauss.dylib) not valid for use in process using Library Validation: mapping process has no Team ID and is not a platform binary


Alex Zavatone
 

Look at the General Info or Code Signing section of the target.

On May 5, 2020, at 7:59 PM, Carl Hoefs <newslists@autonomy.caltech.edu> wrote:

I've created a dynamic C library, libgauss.dylib, and copied it into /usr/local/lib.

My MacOS 10.14 app builds fine against it, but won't run, complaining that the library doesn't have a "Team ID" and is not a "platform binary".

What does this mean? How can I set this to work?

-Carl




dyld: launch, loading dependent libraries

Dyld Error Message:
Library not loaded: /usr/local/lib/libgauss.dylib
Referenced from: /Users/USER/NIHProject/*/NIHGauss.app/Contents/MacOS/NIHGauss
Reason: no suitable image found. Did find:
/usr/local/lib/libgauss.dylib: code signature in (/usr/local/lib/libgauss.dylib) not valid for use in process using Library Validation: mapping process has no Team ID and is not a platform binary
/usr/local/lib/libgauss.dylib: stat() failed with errno=1
/usr/local/lib/libgauss.dylib: code signature in (/usr/local/lib/libgauss.dylib) not valid for use in process using Library Validation: mapping process has no Team ID and is not a platform binary



Carl Hoefs
 

Does the library need certain entitlements? I have it set to "Apple Development" as the Code Signing Identity. Signing is set to automatic.

-Carl


Jack Brindle
 

It will need hardened runtime at the least. It also may need an exception that allows other apps to use the library. I don’t know if it needs Notarization - since it is a dylib and not a framework I tend to doubt it can be notarized.

Jack


On May 5, 2020, at 8:20 PM, Carl Hoefs <newslists@...> wrote:

Does the library need certain entitlements? I have it set to "Apple Development" as the Code Signing Identity. Signing is set to automatic.

-Carl


Carl Hoefs
 

I enabled "Hardened Runtime" on the library, but it didn't fix the problem.

It does no I/O, only computation on some input values, and returns a double. Straight C code.
Since Xcode knows it's creating a dylib, wouldn't it set the necessary entitlements?
Does the same signing scenario apply to .a libs?

-Carl