1

いくつかのニュースをダウンロードし、それらを のどこかにある plist ファイルに書き込むための Web サービスがありますNSLibraryDirectory。それで問題ありません。しかし、ユーザーがインターネットに接続していないか、Web サービスがオフラインであるなどの場合は、AppBundle 内から Default-Newsfile を読み込みます。

現時点では、すべての AppStoreUpdate の前に Default-File を手動で置き換えて、最新の状態に保つ必要があります。

私の質問: Simulator を介してデバッグ中に App Bundle に書き込む簡単な方法はありますか?

私は次のようなことについて考えました:

#ifdef SIMULATOR
   //Write to AppBundle
#endif

注: Mac とシミュレーターを使用している間はすべて、公開アプリでそれを行いたくありません! はい、バンドル内のリソースを既に置き換えていますが、手動で自動的に実現したいと考えています。デバイスまたは AppStore 用にコンパイルする前に、Projectfolder を最新の状態に保ちたいと考えています。

4

3 に答える 3

7

AppBundleプログラムで何も書き込むことはRead-onlyできませんが、Projectthroughのリソースを更新するXcodeと、更新されたファイルが自動的にAppBundle..

于 2013-04-22T07:16:23.370 に答える
1

わかりました、あなたのコメントに基づいて、ここにあなたが必要とするものがあります(私は思う-質問についてはまだ完全には明確ではありませんが、これがうまくいくかどうか教えてください).

  • プロジェクト フォルダー (SRCROOT) に空のファイル (news.plist など) を作成します。これをリポジトリに追加します。
  • このファイルをプロジェクトのリソースに追加し、Copy Bundle Resources手順で追加しますBuild Phases
  • インターネットからコンテンツをダウンロードしたら、それをプロジェクトの一時フォルダーに保存し、それを SRCROOT/news.plist にコピーして既存のファイルを上書きします (必要に応じて、不要な変更を避けるためにファイル チェックサムのチェックを追加します)。この手順は、シミュレーターで実行する場合にのみ必要です。
  • 開発者がチェックインするたびに、更新された news.plist をリポジトリにチェックインする必要があります。

SRCROOT をコードで使用できるようにするには、SRCROOT=\"${SRCROOT}\"GCC_PREPROCESSOR_DEFINITIONS に追加します。

他の開発者は、最後のステップ以外は何もする必要はありません。更新されたファイルが変更されるたびにチェックインします。

これは役に立ちますか?

于 2013-04-26T09:42:05.933 に答える
1

いいえ、シミュレーターで App Bundle に書き込むことは可能かもしれませんが、これは、プロジェクトのファイル (アプリ ストア用にビルドするときにコンパイルされるファイル) が更新されることを意味するものではありません。

新しいものをドキュメントディレクトリに保存してから、常にこのファイルをロードしてください。アプリの起動後、バックグラウンド スレッドを開始し、plist ファイルの更新を試みます。ドキュメント ディレクトリに plist ファイルを書き込むと、ニュースの取得に成功します。このようにして、ユーザーは、デバイスが最後にファイルを取得できたときに取得されたファイルを取得します。

ユーザーがアプリにデータを持っていることを確認するためだけに、アプリケーションの最初の起動時にドキュメント ディレクトリにコピーするアプリ バンドルにファイルを追加できます。

于 2013-04-22T07:14:35.677 に答える