【问题标题】:Alamofire 'SecTrustCopyKey' is only available in iOS 14.0 or newerAlamofire 'SecTrustCopyKey' 仅适用于 iOS 14.0 或更高版本
【发布时间】:2020-11-24 08:16:04
【问题描述】:

我最近添加了pod 'Alamofire', '~> 5.4.0' 到我的项目,但在 ServerTrustEvaluation.swift 行 603 中有一个错误:

return SecTrustCopyKey(createdTrust) //'SecTrustCopyKey' is only available in iOS 14.0 or newer

我该如何解决这个问题?应该使用早期版本吗?

【问题讨论】:

  • 这很奇怪。刚刚安装了 Alamofire 5.4.0,在这个文件的这一行中调用了一个不同的函数:SecTrustCopyPublicKey(createdTrust)
  • 是的,这不是 Alamofire 的一行代码。 Alamofire 根本不使用SecTrustCopyKey
  • 你是对的。我不知道为什么会这样。 (它的文件被锁定,我确定它没有改变)。我删除然后再次添加它并且它改变了!谢谢

标签: ios swift alamofire


【解决方案1】:

您可以像这样将该代码包装在 #available-statement 中:

if #available(iOS 14, *) 
{
    return SecTrustCopyKey(createdTrust)
}
else 
{
    // Return something else here.
}

显然,这意味着您将无法在运行较低 iOS 版本的设备上使用 SecTrustCopyKey()。 找到适用于以前 iOS 版本的该功能的等效项将是一种解决方案。可以在else { ... }中使用。

【讨论】:

  • 谢谢,但我正在寻找“等效于该功能”
  • Here 是完整的文档,您应该可以在其中找到任何可用的功能。
【解决方案2】:

如果不需要支持旧版本的IOS,你可以将部署目标更改为14

【讨论】:

  • 请您以其他方式分享,而不是建议更改部署目标
猜你喜欢
  • 2018-07-04
  • 2020-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多