2009-05-28 8 views
5

携帯電話とWi-Fiネットワーク環境で簡単にダウンロードできるように、アプリを10.0MB以下に保ちたい。あなたの経験では、あなたのアプリをスリムに保つための良い方法を見つけましたか?もしそうなら、共有してください。 iPhoneアプリのファイルサイズを10.0MB未満にするための良いガイドラインは何ですか?iPhoneアプリのファイルサイズを10.0MB未満にするための良いガイドラインは何ですか?

答えて

6

私が10Mを超えるように処理したほとんどのアプリケーションは、リソース、しばしば画像と音声によるものです。これらを正確にサイジングすることが重要です。 iPhoneはデバイスのバンドル時に自動的に圧縮されるため、Simulatorのサイズはデバイスと大きく異なる場合があります。

すべての最適化演習と同じように、最初に堅実で安定したシステムを構築し、最大の問題を引き起こしている部分に最適化作業を集中させたいとします。私はこのためにduを使用します。

  • ビルドをデバイス用のリリースで
  • ゴー構築するために/リリース-iphoneos/.appを
  • du -ak | sort -rn | head

これはあなたの場所のリストが表示されますトップのものがあります。この情報はkB単位ですが、次のブロック(Macでは4k)に切り上げられます。しかし、あなたは大きなものを探しているだけで、すべてのものの正確なサイズを調べるつもりはありません。

あなたのリソースにコピーされているものは特にありません。面白いことが時々そこに入ります。特にプロジェクトに追加したドキュメントです。これをテストすると、私自身のプロジェクトテンプレートがxcconfigファイルをバンドルにコピーしていることに気がつきました。...)

ローカライズされたNIBがたくさんある場合は、NIBをローカライズしない、むしろIBOutlet UILabelsを使用しています。実際のローカライズされたテキストがない場合、NIBをローカライズしないでください。 1つのNIBをローカライズしても、すべての言語をローカライズする必要はありません。

一般的に、iPhoneのビルド設定は、すでにサイズを小さくするために積極的なので、変更しているものを調べなければ、それほど混乱することはありません。

あなたが決して呼び出さない多くのメソッドを備えたObjective-Cクラスに注意してください。 Objective-Cは動的なので、Cのようにデッドコードのストリッピングを行うことはできません。実行時にセレクタを使用できるかどうかをコンパイル時に知る方法はありません。ですから、「ちょうどその場合」にキッチンシンクを持つオブジェクトがある場合、それらを取り除きたいかもしれません。しかし、一般的に、ここでは1つのオーディオファイルに比べて多くのスペースについて話すわけではありません。私はあなたが何らかのクラスメソッドや定数などのためにしかリンクしていない本当に巨大なオブジェクトを持っているまれなケースについて言います。

2

1つのヒントは、圧縮メディア形式を使用することです。例えば。オーディオファイルを使用している場合は、AIFFまたはWAVの代わりにmp3を使用することを検討できますが、処理オーバヘッドが若干高くなる可能性があります。 10MBの実行可能ファイルは異常に高く聞こえるので、大きなアプリケーションには多くのメディアコンテンツ(画像、オーディオ)が含まれている可能性があります。

3

もう1つのヒント:Be careful with your 9.9MB app

あなたのアプリが10.1MBのように見える多くの最適化の後に発見したくありません。

0

ビルドプロセスで自動的にPNGファイルが圧縮されます(pngcrushを使用して自分で作成しないでください)。実際には、10MB以上のサイズを取得するにはかなりの資産が必要です。私はこれについての心配は時期尚早の最適化だと思うし、おそらくあなたは自分が後で近づくまで気にする必要はありません。

1

大きな画像の一部をグレースケールに変換して、アプリの外観に適したものにします。純粋なグレースケールをいくつか作ることができれば、その節約は相当なものです。

0

このtiposは、主にiPhoneのゲームに適用されます:

  • 使用JPGのみの代わりに、透明性を持っていない画像に対してPNG画像を。
  • あなたのサウンドはMP3、renderのWAVに、アプリケーションが初めて読み込まれ、アプリケーションDocuments dirに保存されます。
関連する問題