https://github.com/InstaRobot/SSLPinningManager.git
或者
更新 Package.swift
中的 dependencies
dependencies: [
.package(url: "https://github.com/InstaRobot/SSLPinningManager.git", .upToNextMajor(from: "1.0.0"))
]
import SSLPinningManager
final class PinningSessionDelegate: NSObject {
let sslPinningManager: SSLPinningManager
override init() {
sslPinningManager = SSLPinningManager(
pinnedKeyHashes: [
"< sha256 hash from certificate >"
]
)
}
}
extension PinningSessionDelegate: URLSessionTaskDelegate {
func urlSession(
_: URLSession,
didReceive challenge: URLAuthenticationChallenge,
completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void
) {
sslPinningManager.validate(
challenge: challenge,
completionHandler: completionHandler
)
}
}
将您的自定义委托添加到 URLSession
let session = URLSession(configuration: .default, delegate: PinningSessionDelegate(), delegateQueue: nil)