Alamofire, Использование необъявленных типов - PullRequest
0 голосов
/ 13 октября 2019

Я использую 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 'Alamofire', '~> 5.0.0-rc.2'.

Я искал и тестировал некоторые решения, но не могу устранить ошибки. Как я могу это исправить?

Я тоже попробовал этот ответ. +

1 Ответ

1 голос
/ 13 октября 2019

В 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)
...