Apple は、ホストされたコンテンツまたはバンドルされたコンテンツをいつ使用するかについて、いくつかのガイダンスを提供しています。In-App Purchase Programming Guide: Delivering Productsから引用しています。
特にほとんどのユーザーがその製品を購入することが予想される場合は、小さなファイル (数メガバイトまで) をアプリに埋め込みます。App Bundle のコンテンツは、ユーザーが購入するとすぐに利用できるようになります。ただし、アプリ バンドルのコンテンツを追加または更新するには、アプリの更新バージョンを提出する必要があります。
必要に応じて、より大きなファイルをダウンロードします。アプリ バンドルからコンテンツを分離することで、アプリの初期ダウンロードを小さく保ちます。たとえば、ゲームの App Bundle に最初のレベルを含め、ユーザーが購入時に残りのレベルをダウンロードできるようにすることができます。アプリがサーバーから製品 ID のリストをフェッチし、アプリ バンドルにハードコードされていないと仮定すると、アプリによってダウンロードされるコンテンツを追加または更新するためにアプリを再送信する必要はありません。
これらは要件ではなくガイダンスであるため、誰かが携帯電話を使用しているときに大量のダウンロード可能なアセットを使用してアプリ内購入を行うと信じる理由がある場合は、それをバンドルすることをお勧めします. ただし、ロックを解除するために購入しない場合、ユーザーのデバイスのスペースが無駄になります。
セキュリティに関しては、ダウンロード オブジェクトに関するセクションにこの注記があります。
注:取引を完了する前に、Apple がホストするすべてのコンテンツをダウンロードしてください。トランザクションが完了すると、そのダウンロード オブジェクトは使用できなくなります。
これは、ダウンロードがトランザクションの内部認証でのみ利用可能であることを意味します (ただし、明示的には述べていません)。これは、Apple の承認が必要であることを意味します。これは、レシートをローカルで確認するよりも実際には安全です (ジェイルブレイクを使用してバイパスできます)。