NIBベースのUIとWebView UIの両方のRetinaグラフィックスを含むXcodeプロジェクトがあります。このプロジェクトは、Mac用のアプリケーションを構築します。WebViewのCOMBINE_HIDPI_IMAGESとRetinaグラフィック
プロジェクトでは、2つの別々のビルドフェーズを使用して、これらのグラフィックスを最終的なアプリケーションに移動します。 1つは従来のコピーバンドルリソースで、1xと2xの両方のグラフィックスをアプリケーションパッケージに入れます。もう1つは、Webグラフィックスを「グラフィックス」サブパスを持つ別のリソース送り先にコピーするコピーファイル作成フェーズです。
(これは、いくつかの命名の競合を回避し、Webデザイナーは、おなじみの「グラフィックス/ whatever.png」パスを使用することができます。)
このプロジェクトをビルドするとき、私たちが言う依存関係の分析エラーを取得:
をファイルのコピービルドフェーズでは、複数表現イメージ '[email protected]'を処理できません。コピーリソースのビルドフェーズを実行するか、 COMBINE_HIDPI_IMAGESを無効にしてください。
「高解像度アートワークの結合」というデプロイメントビルド設定をオフにするのは簡単ですが、これはNIBベースのUIとWebView UIで使用されるグラフィックスに影響します。このオプションをオンにすると、button.png
と[email protected]
が結合され、アプリケーションパッケージのResourceフォルダのbutton.tiff
になります。それがなければ、元の名前が使用されます。
私の知る限り、アプリケーションは正常に動作しますが、COMBINE_HIDPI_IMAGESはデフォルトでオンに設定されているため、グラフィックを単一のファイルとして展開する利点があると思われます。
理想的には、ファイルコピービルドフェーズでのみCOMBINE_HIDPI_IMAGESを無効にしたいと考えています。私はここに他の誰かうまくいけば、これを行う方法をできる把握することはできません...
を更新2012年8月27日
を、この特定のアプリケーションのために、問題を解決する最も簡単な方法は、にしましたすべてのHTMLイメージを2xバージョンに置き換えます。タグは幅と高さを指定するので、画像は網膜以外の装置では50%縮小されます。品質は良いですし、ローカルファイルシステムからロードされているので、パフォーマンスには影響がありません。
アップデート2012年8月28日
我々が取った別のアプローチは、命名規則にしました。一部のHTML画像は、CSSを使用して指定されています(RetinaまたはRetina以外のバージョンを選択したメディアクエリを使用します)。これらの画像が単一のHiDPI画像に結合される問題を避けるために、whatever.pngとwhatever_retina.pngを使用しました。
これが動作せず、_xcodebuild_からビルドしている場合は、 '-xcconfig'パラメータを使用して、必要なバージョンを指定することができます。 – Andrew