2015-10-22 14 views
5

Wir haben dieses Problem seit Xcode 7 Beta und das Problem besteht bis heute mit Xcode 7.1.Xcode 7.0 und 7.1, Codeabdeckung eingeschaltet, Komponententestabsturz "kann frühere GCDA-Datei nicht zusammenführen: beschädigter Arc-Tag"

Grundsätzlich können wir die Codeabdeckung in Xcode nicht aktivieren. In Xcode 6, das hat gut funktioniert, hat aber immer am Ende einer Einheit Testlauf seit Xcode 7. gebrochen worden ist, erhalten wir unendlich Konsolausgabe sagen:

profiling: /Users/<my path to app>/ObjectiveC.gcda: cannot merge previous GCDA file: corrupt arc tag (<some hex address>) 

Dieser Ausgang wird wiederholt, bis die App Abstürze. Ich habe einfach keine Ahnung, warum dies geschieht und alle Versuche, dieses Problem zu beheben, sind fehlgeschlagen (abgesehen von der Deaktivierung der Programmabläufe und der Deaktivierung der Code-Abdeckung). Ich habe sogar versucht, ein Build-Phase-Skript zu erstellen, das die vorherigen Code-Coverage-Dateien findet und löscht, aber das hat auch nicht funktioniert.

Hat jemand das herausgefunden?

Antwort

1

Die neuen Code Coverage-Funktionen von Xcode 7 verwenden LLVM coverage format.

Auch hat Xcode 7 neue Build-Einstellungen für die Code-Coverage: "CLANG_ENABLE_CODE_COVERAGE"

Stellen Sie sicher, "CLANG_ENABLE_CODE_COVERAGE" ist auf "JA" und im Anschluss an NO:

GCC_GENERATE_TEST_COVERAGE_FILES = NO; GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NEIN;

+0

danke @gagarwal. Ich beantwortete meine eigene Frage, damit ich die Screenshots hinzufügen konnte. – n8tr

2

Danke @gagarwal für die Richtung. Ich muss einfach ein anderes jenkins-Reporting-Tool herausfinden, da die alten Code-Coverage-Dateien benötigt wurden, aber ich nehme an, dass das nicht mehr unterstützt wird. Hier sind einige Screenshots um das Setup zu veranschaulichen, die Berichte Codeabdeckung sichtbar innerhalb Xcode erzeugt basierend auf gagarwal der sugguestions:

----------------------   
main app target config 
---------------------- 

enter image description here enter image description here

---------------------- 
test app target config 
---------------------- 

enter image description here enter image description here

------------------------------------------ 
Scheme config (see "Gather coverage data") 
------------------------------------------ 

enter image description here

+0

Das hat geholfen, danke – naveed148