从MacOS Sierra开始,在没有usr/bin/CoDesign UI的情况下,我不能再使用/usr/bin/security将CoDesign标识导入到密钥链中-在使用该标识时提示访问.这会 destruct 构建服务器的打包脚本.似乎没有解决办法.这会影响自定义创建的密钥链,但也会影响login.keychain.

复制的步骤:

security create-keychain -p test buildagent.keychain
security unlock-keychain -p test buildagent.keychain

security list-keychains -d user -s buildagent.keychain
security default-keychain -s buildagent.keychain

security import identity.p12 -k buildagent.keychain -P password -T /usr/bin/codesign

codesign -vfs '$IDENTITY' '${PRODUCT}' --keychain 'buildagent.keychain'

结果:MacOS显示一个UI提示符,要求允许访问之前导入的私钥.

我try 了许多解决方法,但似乎都不起作用:

  • 使用新的.指定密钥链名称时的密钥链数据库扩展
  • 使用登录名. keys 链而不是定制的
  • 使用-A(‘允许任何应用程序访问 导入的密钥‘)
  • 单独导入证书和密钥(正在提取 使用OpenSSL pkcs12之前的p12)

导入身份肯定有效,在keychain Access应用程序中显示密钥链的内容时,我可以看到证书和密钥.私钥的访问控制设置也已正确配置(使用所需的协同设计例外规则).

如何避免来自Sierra的UI提示?

推荐答案

The command you need to use is as follows:

security set-key-partition-list -S apple-tool:,apple: -s -k keychainPass keychainName

请记住,这个命令行工具的工作原理与list keychains的修改方式类似.If you execute set-key-partition-list with a single value it will overwrite all partitionIDs in the certificates. It won't validate the values passed.

这个命令的作用是为可以为特定密钥链签名(-S)的密钥设置partitionID(用逗号分隔的-S之后的项).

我不知道apple-tool:在做什么,因为它没有文档记录,但它在用security import导入密钥之后就在那里了,所以我保留它是为了避免 destruct 复制粘贴命令的人.

此更改是在MacOS Sierra中引入的,没有文档记录(或者至少我找不到文档).截至10月16日,安全手册页仍然没有列出此命令.

有关更多信息,您可以参考此错误报告-http://www.openradar.me/28524119

Ios相关问答推荐

ITMS—91053:Flutter Project中缺少API声明

如何修复使用EFCore和SQLite的.Net MAUI iOS应用程序上的当前应用程序不支持NullabilityInfoContext?

快速相机放大手势不能正常工作

objc[25442]:Swift类的扩展和类别不允许有+load方法

清除/删除 NavigationController 中的多个 ViewController

SwiftUI 点击列表内不会触发 Select

归档时命令 PhaseScriptExecution 失败,退出代码非零

为什么 Swift 不在启动的同一线程上恢复异步函数?

SwiftUI - 如何从主题感知命名 colored颜色 中获取正确的 RGB 值?

为什么@FetchRequest 在删除时不更新和重绘视图?

如何擦除 Swift 中的 Core Graphics Context 绘图?

UIView 倒置旋转时的zoom 问题

如何使用 AppIntents 在 SwiftUI 应用程序中打开特定视图

SwiftUI 图像与下拉视图切换一起 skip

JSONDecoder 在模拟器上运行良好时无法在真实设备上解码

搜索在 ios xamarin.forms 中不起作用

如何从 scendelegate 打开我的标签栏控制器

检测 iPhone/iPad/iPod touch 的 colored颜色 ?

try 在 iOS 中处理后退导航按钮操作

SRCROOT 和 PROJECT_DIR 有什么区别?