3

アプリがリリースされた後、xibsを変更してバンドルし、そのバンドルをダウンロードして、新しいxibを探すようにクライアントを構成することで、アプリでxibsをカスタマイズできるようにしたいと考えています。

これまでに、作成したバンドルにxibを追加し、ダウンロードしようとしています。

   // bundle URL is NSURL to uploaded resource for bundle
   NSBundle *myBundle = [[NSBundle bundleWithURL:bundleURL] retain];

このエラーが発生します:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSBundle initWithURL:]: non-file URL argument'

私の質問:私がやろうとしていたことをすることは可能ですか?このエラーは、それが不可能であることを示しています。

バンドルをダウンロードできない場合、xibだけをダウンロードして使用することはできますか?

ありがとう!

4

2 に答える 2

5

バンドルがファイルシステムにフォルダとして保存されているため、このエラーが発生します。ファイルは簡単にダウンロードできますが、フォルダをダウンロードすることはできません。NSBundleはこれを認識しているため、初期化にはローカルファイルのURLのみを許可します。バンドルをダウンロードするには、次の3つのオプションがあります。

  1. ここで受け入れられた回答に記載されているように、バンドルをzipアーカイブとしてダウンロードし、アーカイブを解除できます。

  2. バンドル内の各ファイルのファイル名を一覧表示する追加のファイルをサーバーに保存し、各ファイルをダウンロードしてローカルに作成できます。

  3. すべてのバンドルで使用される形式を指定し、それらのファイルをバンドルからダウンロードできます。これは2に似ていますが、サーバーではなくファイル名のリストが組み込まれています。

于 2011-06-23T22:43:07.833 に答える
4

はい、XIB、画像、その他のアセットのみを含むバンドルを読み込むことができます。コードを含むバンドルをロードしようとしないでください。コードをロードしようとすると、Appleはデジタル署名を明示的にチェックします。これにより、ロードが失敗します。

于 2011-06-23T21:35:04.473 に答える