ios Map文件没有团队ID,并且不是平台二进制文件

wwwo4jvm  于 2022-12-15  发布在  iOS
关注(0)|答案(2)|浏览(171)

注意:this question看起来很相似,但是不同。这里的错误是关于一个没有团队ID的文件,而链接的答案是关于一个根本没有签名的文件的adhoc-signing。那里的答案(解释如何adhoc-signing)不能解决这里的问题。
尝试运行一个链接到动态库的可执行文件时,我收到以下错误:

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?))

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

c0vxltue

c0vxltue1#

使用以下方法检查文件的签名:

% codesign -d -v ./mavsdk

字符串
例如,它可能显示(特别注意签名=adhoc):

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>
wecizke3

wecizke32#

有同样的问题。当试图签署库时,库已经签署了...

<lib>: is already signed

强制签名解决了该问题:

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

相关问题