MonoDevelop の将来のバージョン (私のパッチは次の 4.0 リリースに間に合いませんでした) では、これはもはや問題にはなりません。
MonoDevelop 3.x で現在起こっていることは、プロジェクトをビルドするときに、変更されたイメージのみをアプリ バンドルにコピーすることですが、iphone-optimize
ビルド後、MonoDevelop は、アプリ全体をスキャンするXcode と共にインストールされたスクリプトを呼び出します。ディレクトリに移動しpngcrush
、すべての画像を圧縮するために使用します (すべての plist ファイルもバイナリ plist に変換します)。これは、大量の画像がある場合にビルド時間が非常に遅くなる原因となるステップです。
QAing のために 4.0 ブランチが閉鎖された直後に、iphone-optimize
スクリプトを呼び出す必要がないようにするパッチを作成しました。代わりに、MonoDevelop が行うことは、変更された画像のみpngcrush
を直接呼び出し、適切なアプリ ディレクトリの場所を出力引数として渡し、追加のファイル コピーを回避することです。pngcrush
私自身のテストによると、これにより、多数のイメージ ファイルを含むプロジェクトのビルド時間が大幅に改善されます。
それまでの間、スクリプトのバックアップを作成し( の下のどこiphone-optimize
かにあるはずです/Applications/Xcode.app
)、画像ファイルを破壊しないように変更します。次に、それが完了したら、プロジェクト内のすべての png ファイルを事前に圧縮します。
(注:私のパッチを含むMonoDevelopが最終的に出荷されると、すでに画像を事前に圧縮している開発者のためにpngcrushの呼び出しを無効にするオプションもあります).