来自此iOS客户端应用程序\u003cempty\u003e的请求被阻止



当我更新我的项目swift版本4到5时,出现了这个错误。查看了许多与这个错误相关的帖子,但无法修复。

"message": "Requests from this iOS client application u003cemptyu003e are blocked.",
"errors": [
{
"message": "Requests from this iOS client application u003cemptyu003e are blocked.",
"domain": "global",
"reason": "forbidden"
}
],

同样的问题。

" UserInfo={NSLocalizedFailureReason=The server responded with an error: 
- URL: https://firebaseinstallations.googleapis.com/v1/projects/<app-name>/installations/ 
- HTTP status code: 403 
- Response body: {
"error": {
"code": 403,
"message": "Requests from this iOS client application <bundle-id> are blocked.",
"status": "PERMISSION_DENIED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "API_KEY_IOS_APP_BLOCKED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/",
"service": "firebaseinstallations.googleapis.com"
}
}
]
}
}

问题是firebase更新版本/SDK。它不将[String:Any]强制转换为HTTPHeaders,并且总是失败。

let requestURL = URL(string: urlString)!
let encoding: ParameterEncoding = (method == .get ? URLEncoding.default : JSONEncoding.default)
var _headers: HTTPHeaders = HTTPHeaders()
//  Convert header dictionary to HTTPHeaders
if let headers = headers { for key in headers.keys { if let value = headers[key] as? String { _headers.add(name: key, value: value) }}}
let request = alamofireManager.request(requestURL,
method: method,
parameters: parameters,
encoding: encoding,
headers: headers as? HTTPHeaders)
headers: _headers)
request
.validate(statusCode: 200..<500) //range of acceptable status code for the response success
.responseData(completionHandler: { response in

最新更新