Swift SecCodeCopySigningInformation生成奇怪的错误
我有一些代码可以检查macOS上的代码签名:Swift SecCodeCopySigningInformation生成奇怪的错误,swift,macos,logging,digital-signature,swift5.1,Swift,Macos,Logging,Digital Signature,Swift5.1,我有一些代码可以检查macOS上的代码签名: // Get a code reference. var codeOpt: SecCode? = nil var err = SecCodeCopyGuestWithAttributes(nil, [kSecGuestAttributeAudit : sourceAppAuditToken] as NSDictionary, [], &codeOpt) guard err == errSecSuccess, let code = codeOp
// Get a code reference.
var codeOpt: SecCode? = nil
var err = SecCodeCopyGuestWithAttributes(nil, [kSecGuestAttributeAudit : sourceAppAuditToken] as NSDictionary, [], &codeOpt)
guard err == errSecSuccess, let code = codeOpt else {
return nil
}
// Convert that to a static code.
var staticCodeOpt: SecStaticCode? = nil
err = SecCodeCopyStaticCode(code, [] , &staticCodeOpt)
guard err == errSecSuccess, let staticCode = staticCodeOpt else {
return nil
}
// Get code signing information about that.
var infoOpt: CFDictionary? = nil
// this generates MacOS error: -25337 and CSSM Exception: -2147414013 CSSMERR_DL_MDS_ERROR
err = SecCodeCopySigningInformation(staticCode, SecCSFlags(rawValue: kSecCSInternalInformation ), &infoOpt)
guard err == errSecSuccess, let info = infoOpt as? [String:Any] else {
return nil
}
调用SecCodeCopySigningInformation
会在系统日志上生成以下错误:
MacOS错误:-25337
CSSM异常:-2147414013 CSSMERR\U DL\U MDS\U错误
有人知道为什么会有这些错误吗?据我所知,我的代码是正确的。在调用SecCodeCopySigningInformation之前,您应该再次创建静态代码,例如
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
CFURLRef path = (__bridge CFURLRef)url;
SecStaticCodeRef codeRef;
SecStaticCodeCreateWithPath(path, kSecCSDefaultFlags, &codeRef);
也可以使用这些标志
SecCSFlags flags = kSecCSInternalInformation;
CFDictionaryRef signingInfo = nil;
OSStatus status = SecCodeCopySigningInformation(codeRef, flags, &signingInfo);