【发布时间】:2020-05-20 02:47:58
【问题描述】:
我的服务器证书已过期。
我想绕过或关闭我的 swift iOS 应用的证书验证,以便测试应用功能。
我需要这个只是为了测试,而不是生产实时应用程序。所以没有人关心安全。
如何在 Swift iOS 中实现这一点。
我正在使用 Alamofire 库来处理网络请求。
如何做到这一点。
【问题讨论】:
标签: ios swift iphone ssl-certificate
我的服务器证书已过期。
我想绕过或关闭我的 swift iOS 应用的证书验证,以便测试应用功能。
我需要这个只是为了测试,而不是生产实时应用程序。所以没有人关心安全。
如何在 Swift iOS 中实现这一点。
我正在使用 Alamofire 库来处理网络请求。
如何做到这一点。
【问题讨论】:
标签: ios swift iphone ssl-certificate
将下面的代码放入 info.plist 文件中。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
【讨论】:
尝试类似:
import Foundation
import Alamofire
class NetworkManager {
static let shared = NetworkManager()
var unsecure: SessionManager!
var serverTrustPolicies: [String: ServerTrustPolicy] = ["unsecureSslHostname":.disableEvaluation]
private init () {
self.unsecure = { () -> SessionManager in
let configuration = URLSessionConfiguration.default
configuration.httpAdditionalHeaders = SessionManager.defaultHTTPHeaders
return SessionManager(
configuration: configuration,
serverTrustPolicyManager: ServerTrustPolicyManager(policies: self.serverTrustPolicies)
)
}()
}
}
之后NetworkManager.shared.unsecure 将返回 Alamofire SessionManager,它可用于向具有不安全 SSL 证书的主机发送请求。
【讨论】: