1

大量の PNG ファイル リソースを使用するアプリケーションを作成しています。バイナリのサイズを最小限に抑えるために、すべてのファイルを手動で最適化し、リソース フォルダーのサイズを元の最適化されていないサイズのほぼ 20% にまで縮小することができました。

ただし、デバイス (シミュレーターではない) テスト用にアプリケーションをビルドする場合、ビルド プロセスは pngcrush の修正バージョンと思われるものを実行して PNG ファイルを「最適化」しようとします。ほとんどのファイルが大きくなりますが、透明度とは異なる目的でアルファ値を使用しているため、必要のないアルファ事前乗算を行うことで一部のファイルが使用できなくなります。

このWebページで説明されているように、ビルド設定で「PNGファイルの圧縮」を「いいえ」に変更することにより、objective-cプロジェクトを作成した場合、xcodeでこのステップを無効にできることがわかりました。

ただし、MonoDevelop プロジェクトでこの設定を変更する方法を見つけることができませんでした。

MonoDevelop からビルドするときに、この PNG の「最適化」ステップを無効にするにはどうすればよいですか?

4

2 に答える 2

3

この機能は (MonoDevelop で) 開発中です。ただし、iPhone アドイン (MonoDevelop 用) はオープン ソースではないため、自分でハッキングしても機能しません。

現在、2 つのオプションがあります。

  1. 開発中にイメージをデバイスに直接移動して、毎回 (アプリケーションと共に) デプロイされないようにする。この記事から、このハックを実装する方法を確認できます。

  2. スクリプトをハックしますiphone-optimize(これが MonoDevelop の呼び出しです)。スクリプトは Xcode ディレクトリにあります (複数のバージョンがある場合は、MonoDevelop のSDK の場所で指定されているものが使用されています)。

このためには、次のことが必要です。

  1. 既存の (元の) PNG をバックアップします。

  2. 最適化された PNG を「新しい」オリジナルとしてコピーします。

  3. iphoneos-optimizeスクリプトをバックアップします。

  4. そのスクリプトを編集して、PNG ファイルを無視します (つまり、pngcrush を実行しません)。

Xcode を更新するとスクリプトが置き換えられることに注意してください。そのため、更新後に再編集する必要があります。

于 2013-01-19T15:48:28.983 に答える
1

半年前はありえなかった

それでも、MonoDevelop のソースはオープンであるため、パッチを適用してソースからコンパイルすることができます。

于 2013-01-19T10:38:09.610 に答える