2

ローカル ストレージ (sencha 'Ext.data.proxy.LocalStorage' を使用) を使用して一部のコンテンツをオフラインで表示するアプリがあります。iOS データ ストレージ ガイドラインに違反しているため、iTunes から拒否されました。

iOS 5.1 より前の iOS では、localStorage が /Documents フォルダー内にあることに関連している可能性があると思いました。新しいバージョンでドキュメント フォルダーが空であることを確認するために確認しましたが、まだ .file__0.localstorage が見つかりました。

奇妙なことに、同じファイル (ただし、先頭のドットがない) が、本来あるべきライブラリ/キャッシュ フォルダーにも存在するということです。

どちらも同じ内容です。

誰もがこれがどのように起こるか知っていますか? すでに Sencha サポートで質問しましたが、Sencha フレームワークとは関係ないようです。

注: 私は PhoneGap を使用しておらず、Sencha のみを使用しています。

4

1 に答える 1

2

ローカル ストレージに書き込む非常に小さな Hello World アプリケーションを Sencha で作成すると、この動作を再現できました。アプリケーションの終了時に、localstorage ファイルのコピーが /Documents フォルダーに書き込まれるようです。

これは私には疑わしいと思われ、localStorage ファイルもバックアップする iOS 5.1 の PhoneGap パッチを思い出しました。

iOS 5.1 では、Apple は localStorage ファイルを Library/Caches フォルダに配置し始めました。これにより、データが信頼できる形で保存されなくなったため、多くのアプリケーションが機能しなくなりました。そのため、PhoneGap などは、localStorage ファイルをドキュメント フォルダーにバックアップし、必要に応じて自動的に復元する回避策の実装を開始しました。

Sencha が同様のことを行う証拠を見つけようとして、結果の .app パッケージを開き、ネイティブ ラッパー コードを含む stbuild_template ファイルを見つけました。もちろんコンパイル済みですが、文字列「localStorage」を検索すると、次のような興味深い結果が得られます。

restoreLocalStorage
preserveLocalStorage
Could not remove source file while backing up localstorage Could not copy localstorage backup . Caches WebKit/LocalStorage .file__0.localstorage file__0.localstorage
SNLocalStoreageFix

また、パッケージングのために内部で使用されていると思われる NimbleKit への参照がたくさん見つかりました。

このスレッドは、OP が使用している Sencha Touch 2.1 の iOS 5.1 ローカル ストレージの問題の解決策も示唆しています。 iOS-5.1-apps&s=04149e771f9c4eea15cb6f6d97069ff6

これはすべて、Sencha が iOS 5.1 用に localStorage を /Documents フォルダに配置する回避策を実装した証拠です。キャッシュに localStorage ファイルのみを使用しているため、ユーザー以外のデータを /Documents に保存しているため、Apple はあなたを拒否しました。

PhoneGap を使用すると、このバックアップを無効にするオプションがあると思います。したがって、これを使用することを検討するか、無効にする同様のオプションがあるかどうか Sencha に問い合わせてください。

于 2013-01-11T14:20:30.253 に答える