54

CocoaLumberjackのログコンプレッサークラスをインストールした後、この厄介な動作が発生しました。Xcodeは、宣言されていない識別子が多数あると文句を言い、多くのエラー(警告ではなく、赤いアイコンのエラー)を表示します。

問題は、iPadアプリを正常にコンパイルして実行できることですが、Xcodeはオートコンプリートを実行しません。ビルドフォルダーをクリーンアップし(Product> option+ Clean)、派生データも削除してみました。また、再起動しても無駄になりました。

ご想像のとおり、これは作業するのが面倒です。以前のバージョンのXcodeでは、この動作が以前に発生していました。プリコンパイル済みヘッダーファイルの内容と関係がありますが、上記のソリューションを使用すると常に修正されます。現在、Xcode 4.4(4F250)を使用しています。

私が得ているサンプルエラー:

Semantic Error: use of undeclared identifier 'DDTTYLogger'

上記は、私が自分で作成したクラスで、CocoaLumberjackコンプレッサークラスをインストールしてから変更されていない場合でも発生します。

4

17 に答える 17

91

以下を使用して多くの試みを行った後、私はついにこれを解決しました:

Prefix.pchから最後の#importを削除して、再度ビルドします。エラーが発生します(明らかに)。行を元に戻し、再構築します。エラーは表示されず、10秒ほど後にエラーが再び発生します。

最後の#importの代わりに、最後の2つのインポートを削除し、次に3、4などを削除する以外は、上記を繰り返します。5つのインポートを削除するまでこれを行い、それらを元に戻して待機すると、Xcodeは文句を言いなくなりました。

これは私にはまったく起こらなかったことに注意してください。私はどこかのブログでこの解決策を読みました。

奇妙なバグ...

于 2012-08-19T23:27:44.450 に答える
11

ビルド設定を開き、「プリコンパイルプレフィックスヘッダー」を「いいえ」に設定すると、問題が解決しました。

称賛:https ://stackoverflow.com/a/7035492/936957

于 2013-12-11T16:00:35.940 に答える
9

私は、Objective-CとSwiftの両方で、Xcodeのすべての最新バージョンでこれらの問題に常に遭遇しています。

今日、ある特定のクラスファイルでエラーが発生していることに気づきました。私はそれが入っていたいくつかの余分なターゲットからそれを削除しました、そしてエラーはついに消えました!

Xcodeには、現在複数のターゲットを処理するという根本的なバグがあると思います。私の理論では、他のターゲットが構築されていない場合、基本的にそのターゲットからのエラーが発生します。とにかく、これが誰かを助けることを願っています。

于 2017-01-14T01:25:37.663 に答える
4

悪くない、これらのステップに従うなら-

1- Xcode(Cmd + Shif + K)をクリーンアップします。

2-派生データをクリアします(Cmd + Shift + G)

このパス(〜/ Library / Developer / Xcode / DerivedData /)を入力します。

3-Xcodeを終了して再度開きます。

于 2018-02-06T08:33:58.853 に答える
4

この問題は、一部のファイルに「ターゲットメンバーシップ」を設定すると同じではない場合に発生する可能性があります。

クラスXYZはファイル「a.swift」に入れられ、ファイル「b.swift」で使用されます。ただし、「a.swift」の「Target Membership」設定は、b.swiftの「TargetMembership」設定と同じではありません。

以下のように「ターゲットメンバーシップ」設定を確認してください。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

于 2018-06-27T03:21:52.477 に答える
3

を介してインストールされたライブラリで問題が発生していましたcocoapodsBuild Settings「フレームワークモジュールに非モジュラーインクルードを許可する」に移動して検索し、それを設定してYesトリックを実行しました。

于 2016-05-04T14:32:18.670 に答える
2

誤って押したときにXcode10.1で使用しました。

Cmd + Shift + U-テスト用にビルド

Clean(Cmd + Shift + K)を試してから:

Cmd + Shift + R実行用にビルド

于 2019-05-13T12:28:22.000 に答える
1

Xcode 11にアップデートした後、同じ問題が発生しました。上記のアドバイス(フォルダのクリーニング、さまざまな設定のオン/オフ、xCodeの再起動)をすべて試しましたが、何も役に立ちませんでした。また、Cで大きなプロジェクトがあるので、プリコンパイル済みヘッダーを使い続けたいと思います。

最後に、Mac OSを再起動するだけで問題が解決することがわかりました!これは本当に奇妙な動作ですが、とにかく解決策を見つけて満足しています。カラフルなエラーメッセージがたくさん浮かんでいると、コーディングが難しくなります。

于 2019-10-26T10:05:36.247 に答える
0

私にとって、それはプロジェクトのクリーンアップに役立ちました。XCode->製品->クリーン

于 2013-05-27T14:08:03.243 に答える
0

同様のタイプの問題が発生しました。

これを修正する別のオプションは、オーガナイザーを開いてプロジェクトの派生データを削除するか、オーガナイザープロジェクトタブですべてのプロジェクトを削除することです。それはうまくいきます。

于 2014-02-12T09:51:27.467 に答える
0

Xcode5.1でも同じことがわかりました。

#importの間に空白行がないことを確認して修正しました

于 2014-05-21T06:11:09.977 に答える
0

.pchファイルから余分なスペースと行をいくつか削除しましたが、xcodeが文句を言うのをやめました

于 2014-12-29T09:30:16.070 に答える
0

これは私にも起こりましたが、掃除しても直りませんでした。何をしたかは、終了して再開することでしたXCode。その後、すべてのファントムエラーはなくなりました。不思議に思う人のために、閉じたときに開いていたタブは、再度開いたときにも開いたままになります。

于 2017-11-20T18:17:08.430 に答える
0

最近この問題が発生しました。場合によっては、内のフォルダとModuleCacheDerivedDataのプロジェクトフォルダを削除することで解決できますDerivedData。これを行う前に、Xcodeを終了する必要があることに注意してください。

于 2018-01-07T16:10:18.213 に答える
0

Xcodeバージョン10.1(10B61)で実行し、ビルド設定「プリコンパイル済みヘッダーの共有を増やす」をに設定しましたNO。私は、同じフレームワークを共有する多くのプロジェクトがあり、Objective-Cブリッジヘッダーがない(つまり、自分でobj-cコードを追加していない).xcworkspaceで作業していました。Xcodeがデフォルトで.pchファイルを廃止した時期はわかりませんが、プロジェクトにはそれらのファイルがありませんでした。

Xcodeビルド設定:プリコンパイル済みヘッダーの共有を増やす=いいえ

于 2018-12-14T16:12:34.673 に答える
0

ターミナルを開き、コマンドラインからアクセスできる素敵な小さな関数を作成します...

nano ~/.bashrc

追加(先のとがった中括弧の間に必要な置換を行う)

cycle() {
  git stash save "BACKUP"
  git checkout <<SOME OTHER BRANCH>>
  git branch -D $1
  xcodebuild -allowProvisioningUpdates -workspace <<YOUR WORKSPACE>>.xcworkspace -scheme <<YOUR SCHEME>> -configuration Release clean
  git checkout $1
}

^Xプロンプトに従って保存し、Enterキーsource ~/.bashrcを押して現在のターミナルセッションに表示します。

ブランチが元の場所にプッシュされていることを確認してください。削除します:)

を使用して関数を呼び出しますcycle <<MY BRANCH>>(実行したらgit stash pop、作業コピーの変更を復元するために呼び出すことができます)

それがあなたのために働くことを願っています!Xcode、ゲームに参加してください!

于 2019-08-14T20:22:03.940 に答える
0

私の場合(混合objc / swiftプロジェクト)、エラーの少なくとも一部は、「importUIKit」などの一部の使用済みフレームワークのインポートがないことが原因でした。フレームワークがとにかくPrefix.pchファイルのヘッダーに含まれていたため、プロジェクトは正常にコンパイルされました。しかし、たとえばUILabel拡張機能で定義されたメソッドが見つからないなどのエラーが表示され、はい、この拡張機能には「importUIKit」がありませんでした。したがって、これらのエラーはほとんどの場合、Prefix.pchの事前コンパイル/更新に依存していると思います。Prefix.pchに触れたり、クリーニングしたり、派生データを削除したり、XCodeを閉じたり開いたりすると役立つ場合がありますが、常にそうとは限りません。

于 2022-01-18T21:06:12.870 に答える