OK, tuve este error y luché con él durante mucho tiempo (años) al interactuar con mi aplicación Ruby on Rails.
Tenía las credenciales predeterminadas configuradas como se describe en la respuesta aceptada, pero aún recibí el error y he estado confiando en una respuesta didReceiveChallenge para proporcionar las credenciales, afortunadamente eso funcionó como una solución alternativa.
¡Pero! ¡Acabo de encontrar la solución!
Estaba trabajando con la corazonada de que los campos protectedSpace no coincidían con el desafío de Autorización del servidor de Ruby on Rails, y miré el campo de reino, que parecía ser el único que se dejaba sin definir.
Empecé imprimiendo los encabezados de respuesta del servidor y, aunque pude examinarlos, no incluían el campo WWW-Authorization que habría incluido el campo de reino.
Pensé que esto se debía a que mi aplicación Rails no especificaba el reino, así que comencé a mirar el lado de Rails.
Descubrí que podía especificar el reino en la llamada a
authenticate_or_request_with_http_basic
... que estoy usando para la autenticación básica HTTP.
Ya no estaba especificando un reino, así que agregué uno,
authenticate_or_request_with_http_basic("My Rails App")
Luego agregué la cadena correspondiente al espacio de protección,
NSURLProtectionSpace *protectionSpace =
[[NSURLProtectionSpace alloc] initWithHost:@"myrailsapp.com"
port:443
protocol:NSURLProtectionSpaceHTTPS
realm:@"My Rails App"
authenticationMethod:NSURLAuthenticationMethodHTTPBasic];
¡Voila! Eso funcionó, y ya no entiendo el,
CredStore - performQuery - Error copying matching creds. Error=-25300
Incluso después de especificar el reino en la aplicación Rails, todavía no lo veo pasado en el encabezado HTTP, no sé por qué, pero al menos funciona.