iOS 9 以降、iOS には「オンデマンド リソース」(ODR) 機能があり、Apple はアプリ バンドルにリソースを含めるのではなく、オンデマンドでダウンロードできるリソースをホストできます。リソース タグでアセットをタグ付けし、 を使用しNSResourceBundleRequest
て特定のタグのアセットをリクエストすることで、使用頻度の低いアセットを必要になるまでデバイスから離しておくことで、アプリ バンドルのサイズを減らすことができます。
残念ながら、Xcode の app ターゲットに明確に含まれているリソースでしか動作させることができませんでした。コードとリソースがアプリのターゲットではなく、共有フレームワークまたは外部フレームワーク (Cocoapods を介して配布されるライブラリ、または iOS、tvOS、watchOS、macOS アプリ間でコードとアセットを共有するために使用される共有フレームワークなど) に含まれる場合があります。 )。理想的には、これらのフレームワークは最終的にアプリのターゲットに埋め込まれているため、Xcode は埋め込まれたフレームワークからリソースを抽出し、ダウンロード用にタグ付けするだけで済みます。
これらのフレームワーク ターゲットにはプロジェクト ファイルの「リソース タグ」セクションがあり、これらのターゲットでリソース タグを構成することはできますが、実行時にリソース リクエストは単純に失敗しNSBundleOnDemandResourceInvalidTagError
ます。Debug Navigator の [Disk] ペインにも、[On-Demand Resources] セクションが表示されません。
外部フレームワークを使用して ODR を使用できるかどうかを具体的に述べているドキュメントは見つかりません。それが可能かどうかは誰にもわかりませんか?