Die CKContainer.discoverAllIdentities
-Anforderung schlägt immer in meiner CloudKit-App fehl. Es ist im Laufe mehrerer Tage kontinuierlich gescheitert.
Eine vereinfachte Version des Codes, der fehlschlägt (was zu demselben Fehler führt) ist:
%Vor% Dies führt zu einem Fehler, der an die op.discoverAllUserIdentitiesCompletionBlock
weitergegeben wird. Die Beschreibung des Fehlers im Protokoll lautet:
<CKError 0x1c4a51a60: "Server Rejected Request" (15/2000); server message = "Internal server error"; uuid = F67453B9-712D-4E5E-9335-929123E3C978; container ID = "iCloud.com.huntermaximillionmonk.topdraw">
Bisher funktioniert diese Operation nur für bestimmte iCloud-Benutzer. Jetzt ist es nicht für meine beiden Testbenutzer.
Das war ein Problem in iOS 11.0
Dies funktioniert in Xcode 9.2
/ iOS 11.2.1
auf dem Gerät (nicht im Simulator)
Nach dem Zurücksetzen funktioniert der Simulator zum ersten Mal, danach nicht mehr, aber auf dem Gerät funktioniert es immer wieder.
Apple hat diesen Tag behoben, nachdem diese Antwort gepostet wurde, Zufall ?! Ich denke nicht so:)
Dies ist nicht wirklich die Antwort auf die Frage, sondern eine Lösung, die mir geholfen hat, diesen Fehler zu umgehen. Dazu müssen Sie die Interaktion Ihrer App-Benutzeroberfläche ändern und das ContactsUI-Framework zu Ihrem Projekt hinzufügen. Außerdem ist Ihr Benutzer dafür verantwortlich, einen Kontakt mit iCloud-verwandten E-Mails auszuwählen.
Gute Nachricht ist, dass die Methode discoverUserIdentity
immer noch funktioniert. So können Sie es verwenden, um CKUserIdentity
von manuell ausgewählten Kontakt zu erhalten.
Es klingt vielleicht nutzlos, aber in meinem Fall hat es mir geholfen, den Server Rejected Request" (15/2000)
-Fehler zu beheben, eine der Funktionen meiner App zu reparieren und weiterhin den anderen funktionsbezogenen Code mit weniger Aufwand zu verwenden, als ich dachte.
Ich hoffe, dass jemand das hilfreich finden wird.
Nur ein weiterer Datenpunkt, der das Gesamtbild verbessern könnte. Ich sah diesen Fehler immer noch bei 11.2.5, als ich meine eigene iCloud AppleID (mit Hunderten von Kontakten) verwendete, während ich eine Test-App namens discoverAllIdentitiesWithCompletionHandler ausführte. Ich würde die gefürchteten bekommen CKError 0x1c0051730: "Server abgelehnt Anfrage" (15/2000); Servernachricht="Interner Serverfehler". Als ich den Code auf meinem iOS11.2.5-Gerät meiner Tochter (mit nur einer Handvoll Kontakten) wechselte, funktionierte der Code einwandfrei. Führt mich zu der Annahme, dass es eine gewisse Begrenzung gibt, wenn es viele Kontakte mit iOS11 gibt. (P.S. überhaupt keine Fehler auf iOS10)