Alamofire 'SecTrustCopyKey' 仅适用于 iOS 14.0 或更高版本

Posted

技术标签:

【中文标题】Alamofire \'SecTrustCopyKey\' 仅适用于 iOS 14.0 或更高版本【英文标题】: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 你是对的。我不知道为什么会这样。 (它的文件被锁定,我确定它没有改变)。我删除然后再次添加它并且它改变了!谢谢 【参考方案1】:

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

if #available(iOS 14, *) 

    return SecTrustCopyKey(createdTrust)

else 

    // Return something else here.

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

【讨论】:

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

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

【讨论】:

请您以其他方式分享,而不是建议更改部署目标

以上是关于Alamofire 'SecTrustCopyKey' 仅适用于 iOS 14.0 或更高版本的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire:responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputData

出现错误:使用 Alamofire.playground 时没有这样的模块“Alamofire”

var 请求:Alamofire.Request?使用未声明类型的 Alamofire

值:(failure(Alamofire.AFError.explicitlyCancelled)) 使用 Alamofire 发布者时

使用方案 Alamofire watchOS 构建工作区 Alamofire 失败

iOS开发之Alamofire源码深度解析