2015-10-22 1 views
5

Xcode 7ベータ以降この問題が発生しており、この問題はこの間続くXcode 7.1Xcode 7.0と7.1では、単体テストクラッシュが発生しました。「以前のGCDAファイルをマージできません:アークタグが破損しています」

基本的に、Xcodeでコードカバレッジをオンにすることはできません。アプリクラッシュまで

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

この出力繰り返し:Xcodeの6で、これはうまく働いたが、ユニットテスト実行の終わりに、Xcodeの7以来、破損しているが、我々は無限と言ってコンソール出力を取得します。なぜこのようなことが起こっているのか分かりません。この問題を解決するためのすべての試みは失敗しました(計装プログラムのフローをオフにし、コードカバレッジをオフにすることを除く)。私は以前のコードカバレッジファイルを見つけてクリアするビルドフェーズ実行スクリプトを設定しようとしましたが、それもうまくいきませんでした。

誰もこれを理解しましたか?

答えて

1

Xcode 7の新しいコードカバレッジ機能は、LLVM coverage formatを使用しています。

はまた、Xcodeの7は、コードカバレッジのための新しいビルド設定があります。 "CLANG_ENABLE_CODE_COVERAGE"

必ず "CLANG_ENABLE_CODE_COVERAGEを" 作る "YES" に設定し、NOに次のされていない:

GCC_GENERATE_TEST_COVERAGE_FILES = NO; GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO;

+0

ありがとう@gagarwal。私は自分のQに答えてスクリーンショットを追加することができました。 – n8tr

2

ありがとうございます@gagarwalの方向です。古いコードカバレッジファイルが必要だったので、別のjenkinsレポートツールを理解する必要がありますが、それはもはやサポートされていないと思います。ここでgagarwalのsugguestionsに基づいてXcodeの内の閲覧可能なコードカバレッジレポートを生成し、セットアップを説明するためにいくつかのスクリーンショットです:

----------------------   
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

これは、ありがとう – naveed148

関連する問題