20

私たちのアプリは最近iOS Data Storage Guidelines、iCloud でのファイルのバックアップに関する違反で却下されました。

do not back up属性でデータをマークする必要があります。

重要なデータはすべて SQLite データベースに保存し、ユーザー設定は UserDefaults.plist に保存しています。database.sqlite ファイルを としてマークする必要がありますdo no back upか?

AppIDを無効iCloudにすることで状況が改善するかどうかレビュー担当者に尋ねましたが、答えはわかりにくく、はいともいいえとも答えられませんでした。

アプリ内で実際にバックアップする必要があるものは何もありません。AppID のサポートを無効にするだけで、ファイルを??iCloudとしてマークすることを心配する必要はありません。do not back up

以下がレビュアーの回答です。

2.23

また、お客様のアプリは、App Store レビュー ガイドラインで義務付けられている iOS データ ストレージ ガイドラインに準拠していないことも判明しました。

特に、アプリの起動時および/またはコンテンツのダウンロード時に 4 MB が保存されることがわかりました。アプリが保存しているデータ量を確認するには:

  • アプリをインストールして起動する
  • [設定] > [iCloud] > [ストレージとバックアップ] > [ストレージの管理] に移動します
  • 必要に応じて「すべてのアプリを表示」をタップ
  • アプリのストレージを確認する

iOS データ ストレージ ガイドラインでは、ユーザーがアプリを使用して作成したコンテンツ (ドキュメント、新しいファイル、編集など) のみを iCloud でバックアップする必要があることを示しています。

アプリで使用される一時ファイルは、/tmp ディレクトリにのみ保存する必要があります。ユーザーがアプリを終了するときに、この場所に保存されているファイルを削除することを忘れないでください。

再作成できるが、アプリが適切に機能するために保持する必要があるデータ、または顧客がオフラインで使用できることを期待しているデータは、「バックアップしない」属性でマークする必要があります。NSURL オブジェクトの場合、NSURLIsExcludedFromBackupKey 属性を追加して、対応するファイルがバックアップされないようにします。CFURLRef オブジェクトの場合、対応する kCFURLIsExcludedFromBackupKey 属性を使用します。

詳細については、テクニカル Q&A 1719: ファイルが iCloud および iTunes にバックアップされないようにするにはどうすればよいですか? を参照してください。

iOS データ ストレージ ガイドラインの要件を満たすようにアプリを修正する必要があります。個々のコード レベルの質問については、Apple Developer Technical Support に相談してください。必ず次のことを行ってください。

  • 拒否の問題の完全な詳細を含めてください
  • DTS エンジニアがフォローアップするときに問題を再現するために、象徴化されたクラッシュ ログ、スクリーンショット、および手順を準備します。
4

3 に答える 3

3

次の関数を呼び出して、「map.sqlite」のパスを NSURL として渡すことができます。

NSURL *url = [NSURL fileURLWithPath:yourSQLitePath];
[self addSkipBackupAttributeToItemAtURL:url];
The function is provided in Apple as:

- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
    assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);

    NSError *error = nil;
    BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
                              forKey: NSURLIsExcludedFromBackupKey error: &error];
    if(!success){
        NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
    }
    return success;
}
于 2015-04-07T07:59:38.597 に答える