2017-09-19 7 views
4

Da ich Xcode 9 verwende, sind alle Komponententests unterbrochen, die mit dem Schlüsselbund kommunizieren. Es passiert auch mit Xcode GM. Wie ich nachverfolgte, gibt es keine OSStatus Fehler beim Lesen und Schreiben, aber das Lesen von Schlüsselbund gibt nichts zurück und verursacht Fehler für alle Komponententests mit Schlüsselbund. Ich habe schon so etwas erlebt, als Apple Xcode 8 mit iOS 10 Simulator veröffentlicht hat, welcher Schlüsselbund nicht funktionierte und Apple das in Xcode 8.2 behoben hat. Hat jemand anderes dieses Problem mit dem iOS 11-Simulator zu tun? Irgendeine Idee dazu?Lesen von Keychain Xcode 9 Simulatoren gibt nichts zurück

+0

Hey Elyas, ich bin mit einem ähnlichen Problem konfrontiert. Meine Komponententests arbeiten an XCode 8.3.3 sowohl in iOS 9.3 als auch in 10.3.1 Simulatoren. Wenn ich sie jedoch mit XCode 9 starte, scheitern sie an allen Simulatoren (iOS 9.3, 10.3.1 und 11.0). Möchten Sie wissen, ob Sie eine Lösung dafür finden. – Gix

Antwort

9

Endlich haben wir das Problem gefunden. Wie @Gix sagte, ist das Problem mit Komponententests in unserem Framework. Die SDK-Tests haben keinen App-Kontext, daher ist der/a-Schlüsselbund nicht verfügbar. Aber eigentlich wollten wir die Tests nicht vom SDK in die App verschieben, wie du es bei @Gix getan hast. So konnten wir das Problem beheben, indem wir einfach ein Anwendungsziel im SDK-Projekt hinzufügen und dieses dann als Host für die SDK-Komponententests festlegen. Jetzt gehen Unit-Tests vorüber. Aber ich verstehe immer noch nicht, warum es nur einen neuen xCode gibt. Wir stellen fest, dass es kein Problem mit dem iOS 11-Simulator ist, da der gleiche Fehler auch bei iOS 10-Simulatoren in xCode9 auftritt. Diese Einschränkung ist also eine Eigenschaft der xCode9-Simulator-App, die mit der von mir bereitgestellten Lösung behoben werden kann. Es ist immer noch chaotisch, aber es funktioniert und Sie müssen keine Tests von SDK in App verschieben!

+0

Gleiches hier, da Xcode 9 die Komponententests für den Schlüsselbund fehlschlagen, es sei denn, ich füge ein AppTarget in mein Framework ein. – zero3nna

1

Ich dachte mir nur, dass das auf meiner Seite ist, also dachte ich, ich würde es dich wissen lassen, falls du das gleiche Problem hast.

Mein Problem war die Art, wie ich mein Projekt eingerichtet habe. In meinem Projekt habe ich einen Arbeitsbereich mit 3 Projekten, 1 ist die Haupt-App, 1 ist ein Framework/Bibliothek und 1 ist das Pods-Projekt. Ich habe in meinem Framework auf den Schlüsselbund zugegriffen, und mein Unit-Testziel war Teil dieses Projekts.

Nach ausführlicher Diskussion und Arbeit mit Dan Federman aus dem Team hinter der Bibliothek Valet (die Sie können find here), haben wir herausgefunden, dass meine Einheit testet Ziel muss Teil des Projekts, wo die Main App ist. Nachdem ich alle meine Tests vom Bibliotheksprojekt in das Main-App-Projekt kopiert hatte, lief alles und funktionierte gut.

Hoffe, das hilft!