0

これは、作成しようとしているプロセスのかなり具体的なシナリオです。私が使用しているアプリには、ユーザーが信号やインターネット接続がないときにアプリを起動できるように、オフライン モードで起動する目的があります。

問題:

以下を使用してビルドを作成した後、sqlite db ファイルといくつかの画像アセット (PNG/JPG) を xcode プロジェクトにキャッシュしようとしています。

xcodebuild -target $TARGET_NAME -configuration "AdHoc"

そのコマンドの後、(.app ファイルを圧縮した後) 指定された ipa を自分の電話にインストールできます。

ただし、アプリが新しく取得したリソースはキャッシュしませんでした。シミュレーターを実行し、リソース内のすべての画像と db ファイルをコピーし、それらをプロジェクトのディレクトリに貼り付ける外部タスクがあります。xcodebuild コマンドの後に、シェル スクリプトに次のコマンドがあります。

find -L $1/$TARGET_NAME/Resources -type f -not -name ".*" -not -name "`basename $TARGET_NAME/Info.plist`" | xargs -t -I {} cp {} $BUILD_DIR/$TARGET_NAME.app

基本的に、これはキャッシュされたリソースを .app ファイルに入れています。

ここで助けが必要です。皆さんは、「いいえ、これはできません。.app ファイルまたは .ipa ファイルが改ざんされていると、アーカイブが破損し、Apple がアプリのインストールを許可しないため、これを行うことはできません。

私の質問は、これらの特定のリソースを .app または .ipa にキャッシュするにはどうすればよいですか? Apple が私のファイルを破損することなくこれを行うことを許可するプロセスの別の機会はありますか?

もちろん、ユーザーがセルラー サービスのない地域に出かける前に初めてアプリを起動するだけでよいと主張することもできますが、ユーザーが入る前にアプリが完全にキャッシュされるようにする必要があります。

お手伝いありがとう。

4

1 に答える 1

0

これに苦労するのに2週間かかったのが好きですが、SOに尋ねた瞬間、自分で答えを見つけました:

Resources フォルダーの下に「Cached」という名前のフォルダーを作成しました。「キャッシュ」フォルダーを xcode (最初は空) にドラッグしましたが、「ファイルとグループ」オプションが表示されたら、「追加されたフォルダーのフォルダー参照を作成する」をオンにします。そこから、すべてがうまくいくはずです。

基本的なシェルスクリプトを使用して、キャッシュされた画像を新しく作成された「キャッシュ」フォルダーにコピーして、フォルダーがビルド時にそこに配置されたリソースを追加するようにします:)

于 2013-08-30T16:38:57.077 に答える