安全:证书导入失败:在 OS X 上尝试解压 ios 移动配置文件时出现 UNIX

安全:证书导入失败:在 OS X 上尝试解压 ios 移动配置文件时出现 UNIX

在我们的构建环境中,我们使用security cms -D -i如下命令解压 .mobileprovision 配置文件https://developer.apple.com/documentation/technotes/tn3125-inside-code-signing-provisioning-profileshttps://www.objc.io/issues/17-security/inside-code-signing/

/usr/bin/security cms -D -i our_profile.mobileprovision

有时它会失败并在 stderr 中显示以下文本:

security: cert import failed: UNIX[Operation not permitted]
security: problem decoding

添加-v标志并不能使其更清晰:

received commands
Got default certdb
security: cert import failed: UNIX[Operation not permitted]
security: problem decoding

有人知道这是什么吗?可能的原因是什么?可以解决吗?

我检查了 SIP,发现它已被禁用。我检查了默认钥匙串和目录权限:

Default keychain of security: /Users/isandbox/Library/Keychains/login.keychain-db
Info about file: /Users/isandbox/Library/Keychains/login.keychain-db
Permissions: -rw-r--r-- (0o100644)
Size: 67472 bytes
Info about file: /Users/isandbox/Library/Keychains
Permissions: drwx------ (0o40700)

当“安全”失败时和正常运行时,所有这些都是一样的。

答案1

当我禁用多个进程对“security cmd”的并行调用时,这个问题莫名其妙地停止了重现。看来 security util 存在一些竞争条件。当这种情况发生时,没有一个并行进程能够幸运地成功完成。

更新:不幸的是,这只是暂时现象。后来我们发现该错误仍在重现。可能出现的频率会降低,但并未修复。

相关内容