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 发布者时