Tamam, bu hatayı aldım ve Ruby on Rails uygulamamla etkileşim kurarken uzun süre (yıllar) onunla savaştım.
Kabul edilen yanıtta açıklandığı gibi ayarlanmış varsayılan kimlik bilgilerim vardı, ancak yine de hatayı alıyorum ve kimlik bilgilerini sağlamak için bir didReceiveChallenge yanıtına güveniyorum - neyse ki bu bir çözüm olarak çalıştı.
Fakat! Çözümü şimdi buldum!
Korunan Alan alanlarının Ruby on Rails sunucusundaki Yetkilendirme zorluğuyla eşleşmediğine dair bir önsezi üzerinde çalışıyordum ve tanımsız kalan tek alan gibi görünen bölge alanına baktım.
Sunucu yanıt başlıklarını yazdırarak başladım ve bunları inceleyebilsem de, bölge alanını içerecek olan WWW-Yetkilendirme alanını içermediler.
Bunun belki de Rails uygulamamın bölgeyi belirtmemesinden kaynaklandığını düşündüm, bu yüzden şeylerin Rails tarafına bakmaya başladım.
Çağrıda bölgeyi belirleyebileceğimi buldum,
authenticate_or_request_with_http_basic
... HTTP Temel kimlik doğrulaması için kullanıyorum.
Zaten bir bölge belirtmiyordum, bu yüzden bir tane ekledim,
authenticate_or_request_with_http_basic("My Rails App")
Daha sonra ilgili dizeyi protectionSpace'e ekledim,
NSURLProtectionSpace *protectionSpace =
[[NSURLProtectionSpace alloc] initWithHost:@"myrailsapp.com"
port:443
protocol:NSURLProtectionSpaceHTTPS
realm:@"My Rails App"
authenticationMethod:NSURLAuthenticationMethodHTTPBasic];
Voila! Bu işe yaradı ve artık anlamıyorum
CredStore - performQuery - Error copying matching creds. Error=-25300
Rails uygulamasında alanı belirttikten sonra bile, hala HTTP başlığında geçtiğini görmüyorum, nedenini bilmiyorum ama en azından işe yarıyor.