7

アプリに追加するjpeg+png + htmlファイルがたくさんあります。もちろん、「ビルド」すると、すべてのリソースファイルがmyAppmainBundleフォルダーに追加/含まれます。

コードを介して、実行時にリソースの一部を変更できるようにしたいのですが、次のようになります。

1)mainBundleの実行時にコードを介してファイルを「書き込む」ことはできません

2)「documents」フォルダ(またはtemp、または...)でそれを行うことができます

3)実行時のコードだけで「Documents」フォルダ内のファイルをコピーできます

4)「ドキュメント」で対処した後、mainBundleファイルを削除することはできません

しかし、これはアプリのサイズが2倍になることを意味し、大きなアプリ(私の場合)ではこれは意味がないはずです。mainBundleで二度と使用されない大きなファイルがたくさんあります...

そのため、この問題の回避策があるかどうか疑問に思いました(それは意味がないと思っているだけですか?)xCodeまたは他の同様のソリューションを介して「ビルド」フェーズの「Documents」フォルダーにファイルを直接追加します。 ..

ps

1つは、ユーザーが初めてサーバー/インターネット経由で「Documents」フォルダーに直接アプリを使用するときにすべてのファイルをダウンロードすることです。そのため、私のアプリをiTunesStore経由でダウンロードするのはそれほど重くはありませんが、もちろんこれには多くの時間がかかります。エンドユーザーにとっては初めてであり、もちろん、それは十分に受け入れられない可能性があります...

4

2 に答える 2

4

アプリのインストール時にドキュメントディレクトリが作成されるため、できません。コンパイル時にやりたいことをする方法はありません。どちらもインストール時にそれを行うことはできません。

バンドルに含める必要のあるファイルが必要だったので、最初の起動時に直接ドキュメントにコピーする10MBのsqliteデータベースも含めました。それがまさにその通りです。

于 2011-07-20T06:48:28.423 に答える
2

アプリでは機能しません

コンパイル時にファイルをドキュメント ディレクトリにコピーするには、そのディレクトリを事前に知っておく必要があります。アプリがインストールされる前にドキュメント ディレクトリが作成されていない可能性があるため、通常、これを知ることはできません。

シミュレーターでの単体テストに使用できます

ただし、ドキュメント ディレクトリの場所は、ターゲット プラットフォームとビルドするバンドルの種類によって異なります。iOS シミュレーターで実行される SenTestingKit に基づく単体テストの場合、「スクリプトの実行」ビルド フェーズ内でこれを実行するだけで、コンパイル時にドキュメント ディレクトリを特定できます。

~/Library/Application Support/iPhone\ Simulator/$IPHONEOS_DEPLOYMENT_TARGET/Documents

これは実際には単体テスト バンドルに対してのみ機能することに注意してください。単体テスト バンドルは専用のアプリ ディレクトリで実行されないため、シミュレータ プラットフォームの「共有」ドキュメント ディレクトリにアクセスするためです。

于 2012-01-18T13:43:03.797 に答える