Ich habe einige Projekte, die ich mit Xcode 6 Beta 2 erstellen möchte. Alle Projekte verfügen über eine Bibliothek, die XCTest (Kiwi / XCTest und Specta) verwendet und nicht in Xcode 6 erstellt wird, da XCTest / XCTest.h dies nicht kann gefunden werden.
fatal error: 'XCTest/XCTest.h' file not found
#import <XCTest/XCTest.h>
Ich habe festgestellt, dass XCTest.framework nicht mehr in der Build-Phasenliste "Bibliotheken mit Binärdateien verknüpfen" enthalten ist. Dies ist jedoch in Ordnung, da beim Erstellen eines neuen Projekts mit Xcode 6 die Bibliothek automatisch verknüpft wird.
Vielleicht von einiger Relevanz, werden meine XCTest-benötigten Abhängigkeiten alle über Cocoapods eingebracht.
Gibt es etwas, von dem ich nicht weiß, dass ich es mit meinem Projekt aktualisieren muss?
Ich habe Dateien in einem Projekt verschoben. Alles, was Sie tun müssen, ist, Ihre Testdateien
xxxTests.m
usw.file inspector
auszuwählen undtarget
alstest
und nicht als reguläres Ziel auszuwählen .quelle
Ich habe festgestellt, dass XCTest nur für ein Testziel verfügbar ist (in Xcode 6). Wenn Sie XCTest für ein anderes Ziel verwenden (aus welchem Grund auch immer), wird der
XCTest.h not found
Fehler angezeigt .quelle
@squarefrog hat die richtige Antwort, aber Sie müssen dies jedes Mal manuell tun, wenn Sie Ihre Pods aktualisieren :(
Wenn Sie dies zu Ihrer Poddatei hinzufügen, wird automatisch der zusätzliche Pfad für Sie hinzugefügt. Zum Beispiel , wenn Sie will hinzufügen ,
$(PLATFORM_DIR)/Developer/Library/Frameworks
umFRAMEWORK_SEARCH_PATHS
für Specta:quelle
"Pods-Tests-Specta"
vornehmen müssen, um sie an Ihre Projekteinstellungen anzupassen, oder verwenden Sie einfach die von @squarefrog vorgeschlagene Schleife, um über jedes Ziel zu iterieren.installer.project.targets.each do |target
um alle Ziele zu durchlaufen und die Änderung anzuwenden.Dieser Fehler tritt auf, wenn Sie eine Datei hinzugefügt haben, in der XCTest außerhalb eines Testziels verwendet wird. Um dies in AppCode zu beheben, können Sie mit der rechten Maustaste auf eine verdächtige Datei klicken und "Ziele verwalten" auswählen. Stellen Sie dann sicher, dass nur das Testziel aktiviert ist.
quelle
Nach einiger Zeit habe ich das gleiche Problem festgestellt. Ich habe das XCTest-Framework aus den Erstellungsphasen importiert und das Problem behoben.
Phasen erstellen-> XCTest.Framework> bereinigen und ausführen. Ich hoffe es wird jemandem helfen ..
als Referenz ... Importieren Sie XCTest in ein vorhandenes Projekt
quelle
Zum Zeitpunkt des Schreibens hat die neueste Version von Cocoapods (0.33.1) keine Lösung für das Problem.
Aber die neueste Version tut es.
Befolgen Sie diese Anleitung , um die neueste Version von Cocoapods von der Quelle aus einzurichten. Ich rufe meine an
pod-dev
(in der Anleitung behandelt), um sie von der gem-installierten Version von Pods zu unterscheiden.Der Vorteil dieses Ansatzes besteht darin, dass Sie keine zusätzlichen Skripte in Ihrem Podfile benötigen. Sie müssen nur daran denken, eine
pod-dev install
statt der üblichen zu tunpod install
.quelle
Der beste Weg, einen XCTest zu haben, besteht darin, ihn über den Test Nagigator (5. Symbol im linken Bereich) hinzuzufügen.
Auf diese Weise zielt die neue xx.m-Testdatei nicht auf eine App (im rechten Bereich) (im linken Bereich> Ziel, Wrapper-Erweiterung: App) ab, sondern auf ein Bundle (Wrapper-Erweiterung: xctest).
'XCTest/XCTest.h' file not found
, da Ihre Datei auf eine App abzielen musste.quelle
Dies ist die einfachste Lösung, die ich gefunden habe. Es sind keine Projektänderungen erforderlich. Diese Änderung bleibt bis zu Ihrem nächsten Xcode-Upgrade bestehen:
quelle
Bei einem Projekt ohne Cocoapods (also nicht direkt auf die Frage des OP, aber vielleicht hilfreich für mich oder andere in der Zukunft) hatten wir das gleiche Problem. Es wurde gelöst, indem unsere vorherigen OCTest-Elemente durch XCTest ersetzt wurden. Beispielsweise hat eine Datei MyApp.xcodeproj / project.pbxproj diesen Unterschied (verkürzt);
- path = MyAppUnitTests.octest; sourceTree = BUILT_PRODUCTS_DIR; }; + path = MyAppUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
quelle