映射的文件没有团队ID,也不是平台二进制文件



注意:这个问题看起来相似,但不同。这里的错误是关于一个没有团队ID的文件,而链接的答案是关于对一个根本没有签名的文件进行临时签名。那里的答案(解释如何临时签名(并不能解决这里的问题。

试图运行一个链接到动态库的可执行文件,我得到了以下错误:

Library not loaded:
[...]
Reason: tried:
<lib> not valid for use in process: mapped file has no Team ID and is not a 
platform binary (signed with custom identity or adhoc?))

我如何检查签名并修复它?

使用检查文件的签名

% codesign -d -v ./mavsdk

例如,它可能显示(特别注意签名=临时(:

Executable=<path/to/lib>
Identifier=some.package.name
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20400 size=253962 flags=0x2(adhoc) hashes=7930+3 location=embedded
Signature=adhoc
Info.plist entries=11
TeamIdentifier=not set
Sealed Resources version=2 rules=13 files=13
Internal requirements count=0 size=12

为了签署图书馆,首先列出您的身份:

% security find-identity -v -p codesigning

它可能会显示这样的内容:

1) D3F12EDB89FF03FEBA39D1A45F8BD300BAC1C3F0 "Apple Development: Your Name (234MBK19TS)"
2) CA4F82BC3C4BABE180CC8BC52A48CBF4DE0E2CAA "lldb_codesign"
3) EB4AD59AE2BBD1C8A0F43C9B2AAA7FBDA1B0D3EE "gdb-cert"
3 valid identities found

在这种情况下,您可以使用对库进行签名

% codesign -s "Apple Development: Your Name (234MBK19TS)" <lib>

也有同样的问题。当尝试对库进行签名时,库已被签名。。。

<lib>: is already signed

强制签名解决了问题:

% codesign -s "Apple Development: Your Name (234MBK19TS)" -f <lib>

相关内容

最新更新