2016-11-20 24 views
6

最新のXCodeアップデート8.1(Build 8B62)以来、私はプリプロセッサマクロに関連して構文強調/コード補完に奇妙な問題を抱えています。Xcode 8とプリプロセッサマクロ

私はアップデート前に使用していたXCode 8 GMシードでうまく動作しましたが、スキームを選択するときにXCodeが正しいターゲットを認識しません。 たとえば、iOSとApple Watchの2つのターゲットを持つコントローラの静的ライブラリがあります。それぞれでは、プラットフォーム固有の操作にマクロ(APP/WATCH)を使用します。 しかし、私がAPPターゲットにいるとき、XcodeエディタはコードをWATCHターゲットのように強調表示しますが、このターゲットの実際のコードにはハイライトも自動補完もありません。 Xcodeは、さまざまなターゲットからマクロをランダムに検出しているようです。 一方、コンパイラは常に適切なコードを検出して100%正常に動作しますので、コードに問題はありません。それはただのエディタです。

また、私がXcodeを起動すると、コードが約1秒間強調表示され、再びすべての白いテキストが取得されます。すべてのスキームの削除と読み込みがうまくいかず、派生データのクリーニングと削除もこれに影響しません。誰でも同じ問題を抱えているのか、それともこの問題の解決策ですか?

EDIT:ターゲットとマクロを少し使いましたが、Xcodeはどのターゲットが選択されていても、1つのターゲットからマクロのみを取り出し、他のすべてを破棄することがわかりました。どんな助け?

+0

私は同じ問題を抱えています。これのための解決策を見つけることは、どんな運がありますか? –

+0

私も同じ問題を抱えています!何か見つけましたか? – guidev

+0

悲しいことに、私はまもなくバグレポートを書くつもりです。 Appleがobjcをこれ以上使用しているようではないので、Apple自身がこのバグを認識しないと思う。 – optz

答えて

0

これはXCode 8の実際のバグでした.XCode 9(本日現在、2017年9月のベータ6)では、最終的に解決されました。

0

最初の「クリーンビルド」を試してみてください...それが動作しない場合は、2つの小見出しプリコンパイル済みヘッダー で使用されていない

プリプロセッサマクロがあるプリコンパイル済みヘッダーで使用されていないプリプロセッサマクロで

を試してみてくださいあなたがそれらの上に置くと横に表示されるプラスで
デバッグ+
リリース+

。これらの両方にプラスを押して、あなたが得る必要があります。

プリプロセッサマクロは、プリコンパイル済みヘッダーで使用されていない
デバッグ+
どんなアーキテクチャ|任意のSDK
リリース+
任意のアーキテクチャ|任意のSDK

+を押した後に何も入力する必要はありません。これら2つの追加エントリを追加したら、別のクリーンビルドを試してみてください。