我正在使用Alamofire进行SSL固定。 为此,我使用以下代码:
import Foundation
import Alamofire
import SwiftyJSON
class CertificateManager {
init() {
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"test.example.com": .pinCertificates(
certificates: ServerTrustPolicy.certificates(),
validateCertificateChain: true,
validateHost: true
),
"insecure.expired-apis.com": .disableEvaluation
]
let sessionManager = SessionManager(
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)
}
}
但是发生了这些错误:
我的pod文件是:pod 'Alamofire', '~> 5.0.0-rc.2'
。
我搜索并测试了一些解决方案,但无法解决错误。我该如何解决?
我也尝试过这个答案。 +
答案 0 :(得分:4)
如@Kamran帖子。
Alamofire 5.0
,所有api都具有big change
答案 1 :(得分:1)
在您使用的Alamofire
版本中,ServerTrustPolicy
和SessionManager
不再存在。您可以尝试以下新引入的api,
let pinEvaluator = PinnedCertificatesTrustEvaluator(certificates: Bundle.main.af.certificates,
acceptSelfSignedCertificates: true,
performDefaultValidation: true,
validateHost: true)
let disableEvaluator = DisabledEvaluator()
let trustManager = ServerTrustManager.init(evaluators:
["test.example.com": pinEvaluator,
"insecure.expired-apis.com": disableEvaluator
])
let sessionManager = Session.init(configuration: .default, serverTrustManager: trustManager)