Documents ディレクトリを使用して、サーバーからダウンロードしたいくつかのファイルを保存しているため、アプリが拒否されました。
Apple のドキュメントからこれを読みました: https://developer.apple.com/library/ios/#qa/qa1719/_index.htmlそして、このコードを見つけました: addSkipBackupAttributeToItemAtURL -> NSString parameter?
また、このコードはiOSバージョン> = 5.0.1で役立つことも読んでいました。また、iOS バージョン < 5 では、iCloud を使用してユーザー データをバックアップしません。しかし、その iOS == 5.0 は iCloud を使用してデータをバックアップしますが、フラグは機能しません。
だから、私は2つの質問があります:
最初に、アプリケーション内のファイル (データベースなど) が機能する必要があります。そして、それらのファイルを Caches ディレクトリに保存すると、iOS が必要なときにいつでもファイルを削除できます。したがって、ファイルを Documents ディレクトリに保存しています。
/Documents/db.db
/Documents/my.plist
その後、そのディレクトリにファイルを保存し、そのディレクトリに配置したすべてのファイルに対してメソッド addSkipBackupAttributeToItemAtURL を呼び出します。しかし、これがメソッドが機能しているかどうかをテストする方法がわかりません。
ここで読みましたiOS 5.0.1 : フォルダーが iCloud の「バックアップしない」とマークされていることを確認する方法は? シミュレーターを使用すると、アプリケーションのディレクトリに移動してこのコマンドを実行できます
xattr -plxv com.apple.MobileBackup <file name>
ファイルがバックアップされないようにマークされているかどうかを確認します。
しかし、コマンドラインでそのコマンドを実行すると、すべてのファイルに対して次の結果が得られます。
xattr: my.plist: そのようなものはありません xattr: com.apple.MobileBackup
したがって、最初の質問は、Documents ディレクトリの下のファイルがバックアップされないように正しくマークされていることを確認するにはどうすればよいかということです。私は自分のアプリを AppStore に再度アップロードしたくありません。また、Apple の人々がそれを再び破棄することもありません。
第二に、私のアプリケーションは iOS 5 で実行されます。また、ユーザーが iOS 5.0 を使用している場合はすべてのファイルをチェックして Caches ディレクトリに保存し、ファイルを使用する必要があるたびに「静止画」があるかどうかを確認したくありません。毎回ダウンロードできない 500 MB のデータベースがあります。
2 つ目の質問は、「iOS 展開ターゲット」で 5.1 を選択し、[ビルド設定] > [ベース SDK] で 5.1 も選択した場合、iOS バージョンが 5.1 未満のユーザーはアプリをダウンロードできないということですよね? ですから、iOS 5.0 のユーザーが自分のデータを盗むことを恐れる必要はありませんよね?