Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift Alamofire,未声明类型的使用_Swift_Xcode_Ssl_Alamofire - Fatal编程技术网

Swift Alamofire,未声明类型的使用

Swift Alamofire,未声明类型的使用,swift,xcode,ssl,alamofire,Swift,Xcode,Ssl,Alamofire,我正在使用Alamofire进行SSL固定。 为此,我使用以下代码: 导入基础 进口阿拉莫菲尔 导入快捷JSON 类证书管理员{ init(){ 让ServerTrustPolicys:[字符串:ServerTrustPolicy]=[ “test.example.com”:.pinCertificates( 证书:ServerTrustPolicy.certificates(), validateCertificateChain:正确, 验证主机:对 ), “unsecure.expired

我正在使用Alamofire进行SSL固定。 为此,我使用以下代码:

<代码>导入基础 进口阿拉莫菲尔 导入快捷JSON 类证书管理员{ init(){ 让ServerTrustPolicys:[字符串:ServerTrustPolicy]=[ “test.example.com”:.pinCertificates( 证书:ServerTrustPolicy.certificates(), validateCertificateChain:正确, 验证主机:对 ), “unsecure.expired api.com”:.disableEvaluation ] 让sessionManager=sessionManager( serverTrustPolicyManager:serverTrustPolicyManager(策略:ServerTrustPolicys) ) } } 但出现了以下错误:

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

我搜索并测试了一些解决方案,但无法解决错误。我怎样才能解决这个问题


我也试过这个答案

在您使用的
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)

在您使用的
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)
作为@Kamran post

Alamofire 5.0
,所有api都有@Kamran post


< >代码> ALAMOFRE 5 < /代码>,所有API都有<代码> >导入ALAMOFE < /代码>?是的,我导入这些<代码>导入基础导入ALAMOFILE导入SWIFTYJSON/<代码>清洁和重建项目,您尝试过吗?AlamofireV5有新的API,但他们还没有创建迁移指南,因为它仍然是一个候选版本。您可以在中阅读更多关于它的信息。请参阅您的代码“<代码>导入ALAMOFRE < /代码>?是的,我导入这些<代码>导入基础导入ALAMOFRE导入SWIFTYJSON/<代码清洁和重建项目,您尝试了吗?”JoakimDayelelson是的,我尝试过。AlamofireV5有新的API,但他们还没有创建迁移指南,因为它仍然是一个候选版本。您可以在中阅读更多关于它的信息。另请参见以下内容:pinEvaluator和disableEvaluator的用途是什么?@AiraSamson要加密数据以实现安全传输,请使用证书固定(
pinEvaluator
)。如果某台主机被禁用进行评估,则您将使用
disableEvaluator
pinEvaluator和disableEvaluator有何用途?@AiraSamson要加密数据以实现安全传输,请使用证书固定(
pinEvaluator
)。如果某些主机被禁用进行评估,则您将使用
disableor