2012-01-04 8 views
8

タイトルにはかなりの質問があります。私たちは、その逆を適切に設定していないデータモデルを持つアプリをリリースしました。次のリリースではデータモデルの新しいバージョンでこれらを修正しましたが、以前のデータモデルバージョンをコンパイルするときにXcodeは警告を表示します。マネージドオブジェクトモデルのコンパイル時に欠落している逆の警告を無視する方法はありますか?

古いデータモデルから新しいデータモデルにドキュメントを移行する機能を壊したくないので、古いデータモデルの逆変換を変更するだけで済みます。だから、私はそのファイルの警告を抑止する方法があるのだろうかと思っています。他の誰かが来て、警告を見て、それを "修正"することを決めるのではないかと心配しています。

編集:pe8terのコメントに基づいて、データモデルの1つのリビジョンに対してMOMC_NO_INVERSE_RELATIONSHIP_WARNINGSオプションを指定するように見えます。私は、人々がこの同じ過ちを将来起こした場合に警告が表示されるようにするために、プロジェクト全体またはモデル全体をバンドルワイドにしたくないのです。

+1

ターゲットのビルド設定でコアデータ設定を使いこなそうとしましたか?逆関係がないという警告を抑制する方法があります。 – pe8ter

+0

私はプロジェクト設定でそれらを見逃していましたが、MOMC_NO_INVERSE_RELATIONSHIP_WARNINGSを無効にしたいようです。残念ながら、私は単一のモデルリビジョンのためだけにそれを行う方法はありません。モデルバンドル全体がコンパイルされます。個々のリビジョンは個別にコンパイルされません。それらがあったとしても、MOMCはビルドフェーズで指定された単一ファイルコンパイラオプションを無視しているようです。 – Jablair

+0

私はこれまで同じ問題を抱えていました。なぜなら、以前は捕捉されていなかった新しいXCodeバージョンでAppleが新しい警告を導入したからです。私は全モデルで-wを使用し、一般にリリースするときに警告を確認しているようだ。 – Bjinse

答えて

1

自分でこれを行う必要があるとは言いませんが、あなたが好きなようにMOMC_NO_INVERSE_RELATIONSHIP_WARNINGSを設定して、古いデータモデルにmomcコンパイラを実行するスクリプトを書くことができます。次に、ビルド時にスクリプトの実行ビルドフェーズを追加してスクリプトを実行します。ターゲットから古いデータモデルを削除して、Xcodeがコンパイルしようとしないようにする必要があるかもしれません。バンドルリソースのビルドのコピーフェーズを使用して、コンパイルされたモデルをビルドされたアプリケーションに含めることができます。

スクリプトを書く前に、momcモデルコンパイラを見つける必要があります。 This pageはそれがLibrary/Xcode/Plug-ins/XDCoreDataModel.xdplugin/Contents/Resources/だと言っていますが、Xcode 4のために移動したようです。

+0

momcは/ Developer/usr/bin/momcにあり、Xcodeがインストールされているところにあります。しかし、私はこれがうまくいくとは思わない。 momcは、* _v1.xcadatamodel、* _v2.xcdatamodelなどのために別々のコンパイルを行う代わりに、xcdatamodeldバンドル全体を単一のエンティティとしてコンパイルします。この場合、* _v2の警告を無視したいが、将来の改訂で有効にしておきたい。 – Jablair

+0

最後の溝の努力:ターゲットから古いモデルを削除して、Xcodeがすべてのモデルをビルドするようにします。スクリプトビルドフェーズを使用して、古いモデルを含むすべてのモデルをコンパイルし、結果を使用してXcodeが構築するモデルを置き換えます。それがうまくいかない場合は、答えは「いいえ、1つのファイルのmomc設定を変更する方法はない」と考える必要があります。がんばろう。 – Caleb

2

あなたは下位互換性のためにファイルを含んでいるだけなので、変更したくないので、コンパイルされたファイルをソースコントロールにコピーし、ファイルコピービルドフェーズを使用して正しい場所に配置します。

バンドル内の1つのリビジョンについて話しているだけなので、空のダミーバージョンをモデルソースに保存する必要があります(番号付けが正しく行われるように)。その後、ファイルのコピーフェーズで上書きされます。

+1

私はこの考えが好きです。どのくらい正確にそれをしますか? –

関連する問題