web-dev-qa-db-ja.com

LLVMプロファイルエラー:ファイル「default.profraw」の書き込みに失敗しました:許可が拒否されました

Xcodeで単体テストを実行すると、LLVM Profile Error: Failed to write file "default.profraw": Permission deniedエラーが発生します。 Xcodeがこのファイルに書き込もうとしている場所がわかりません。

どのフォルダーにアクセス許可を付与する必要がありますか?

54
Cloud9999Strife

コードカバレッジを有効にするのを忘れたときにこの警告が表示されました。

enter image description here

15
kasyanov-ms

Xcode 10 +

テストスキームのコードカバレッジを有効にします。

enter image description here

2
muhasturk

テスト対象のビルドとテスト自体のビルド設定でCLANG_ENABLE_CODE_COVERAGE = NOを設定してみてください。

編集:@ kasyanov-msによる回答をご覧ください。

2
Coder256

これは他の人には役に立たないかもしれませんが、コードのリファクタリング中にコードにexit(EXIT_FAILURE)を配置したときにこれにぶつかりました。私はそれを置くとアプリがすぐにクラッシュし、そこでクラッシュしたことを見せると思っていましたが、代わりにこのエラーを与えてクラッシュした場所を表示していませんでした。

1
EndersJeesh

ビルドフォルダーをクリーニングすると、エラーがなくなりました。 (Option-Shift-CommandK。)Xcodeバージョン9.2(9C40b)を使用しています。 Assets.xcassetsに一連の画像を追加すると、エラーが発生しました。完全にクリーンアップすると、エラーはなくなります。

1
John Pavley

Xcode 11ベータ1:

これは、シミュレータターゲットに対してコードカバレッジを使用しようとした場合の既知の問題です。後のベータ版を使用するか、物理デバイスに対してカバレッジを実行する必要があります。

0
Sirens

これに対する解決策は非常に簡単です。テスト(XCTestCaseクラスのメソッド)の名前が正しいことを確認してください! Appleのドキュメントによると、テストには「test」というプレフィックスが必要です。命名規則に準拠せずにテストを作成すると、言及したLLVMエラーが表示されます。

例として、「ClassifierTest()」というテストがあり、クラスの「再生」ボタンをクリックするとこのエラーが発生しました。何よりも私をひっくり返したのは、テスト自体の横に「再生」ボタンがなかったということです(適切な名前が付けられていないため、有効なテストとして認識されなかったため)。これをtestClassifier()に変更すると、問題が修正されました。

Appleのドキュメントの内容は次のとおりです。

テストメソッドは、プレフィックステストで始まり、パラメーターを取らず、voidを返すテストクラスのインスタンスメソッドです。

これが誰かの時間節約に役立つことを願っています!

0
Gene Loparco