Swift 4.0 iOS 11.x
Я получил этот вызов curl для APNS, который хорошо работает.
curl -v -d '{"aps":{"alert":"hello"}}' -H "apns-topic: ch.blah.blah" --http2 --cert "/Users/localadmin/GooglDrive/PHP/Cert.pem:029394175X" https://api.sandbox.push.apple.com/3/device/5effd4dfc168d982c877c1e3c99fd43296e2c1afcd090a63a2da397bce1c7bb3vo
Поэтому я пытаюсь переписать его в Swift.
@IBAction func push(_ sender: Any) {
var apnsSub = ["\"alert\":\"hello\""]
var apnsPayload = ["\"aps\"":apnsSub]
let session = URLSession(configuration: .default)
var loginRequest = URLRequest(url: URL(string: "https://api.sandbox.push.apple.com/3/device/5effd5dfc158d922c877c1e3c79fd46296e2c1afcd080a63a2da397bce1c9bb3vo")!)
loginRequest.allHTTPHeaderFields = ["apns-topic": "ch.blah.blah",
"content-type": "application/x-www-form-urlencoded",
]
loginRequest.httpMethod = "POST"
let data = try? JSONSerialization.data(withJSONObject: apnsPayload, options:[])
loginRequest.httpBody = data
let loginTask = session.dataTask(with: loginRequest) { data, response, error in
print("error \(error) \(response)")
}
loginTask.resume()
}
Но я не могу найти пример того, как добавить сертификат, я пробовал вызов URLSession с URLSessionDelegate;но это никогда не называется.Конечно, это приводит к ошибке 403, что означает отсутствие сертификата аутентификации:)
Может кто-нибудь указать мне правильное направление, пожалуйста?