Alamofire,使用未声明的类型

时间:2019-10-13 12:37:13

标签: swift xcode ssl alamofire

我正在使用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)
        )
    }
}

但是发生了这些错误:

Use of undeclared type error

我的pod文件是:pod 'Alamofire', '~> 5.0.0-rc.2'

我搜索并测试了一些解决方案,但无法解决错误。我该如何解决?

我也尝试过这个答案。 +

2 个答案:

答案 0 :(得分:4)

如@Kamran帖子。

Alamofire 5.0,所有api都具有big change

答案 1 :(得分:1)

在您使用的Alamofire版本中,ServerTrustPolicySessionManager不再存在。您可以尝试以下新引入的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)