3

「バックアップしない」属性でフォルダーをマークできることを読んだことがあります。
私が理解しているように、そのような場合、ディレクトリのすべてのコンテンツはバックアップから除外されます。
このアプリでは、Documents ディレクトリ内のすべてのファイルをバックアップから除外する必要があります (ファイルは、アプリの実行中に Documents から追加または削除できます)。
「アプリケーションはiTunesファイル共有をサポートしています」機能を使用するため、ファイルをドキュメントに保存する必要があります。
Documents ディレクトリに「バックアップしない属性」を付けることはできますか?
Apple はこれを許可していますか?
これがアプリを拒否する理由になる可能性はありますか?

4

1 に答える 1

6

アップルによると

iOS 5.0 以前では、ファイルを /Library/Caches ディレクトリに配置して、ファイルがバックアップされないようにします。

iOS 5.0.1 以降では、ファイルを /Library/Application Support ディレクトリに置き、 それらにcom.apple.MobileBackup拡張属性を適用します。この属性により、ファイルが iTunes または iCloud にバックアップされなくなります。多数のサポート ファイルがある場合は、それらをカスタム サブディレクトリに格納し、拡張属性をそのディレクトリだけに適用することができます。

私の知る限り、ドキュメント ディレクトリに do not back up 属性を付けることはできません

1) 以下のコード スニペットを使用して、ドキュメント ディレクトリ内の個々のファイルをマークアップできます。

- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *)filePathString {
        NSURL *fileURL =
        [NSURL fileURLWithPath:filePathString];

        assert([[NSFileManager defaultManager] 
        fileExistsAtPath: [fileURL path]]);

        NSError *error = nil;

        BOOL success = [fileURL setResourceValue:[NSNumber numberWithBool:YES]
                                      forKey:NSURLIsExcludedFromBackupKey
                                     error:&error];
        return success;
    }

2) ドキュメント フォルダ内にサブディレクトリを作成し、それに拡張属性を適用することができます。

以下の構文を使用して拡張属性を設定できます。

int result = setxattr(path, attrName, myDataBytes, [myData length], 0, 0);

拡張属性の読み取りと書き込みの詳細については、次のリンクを参照してください。

これが役立つことを願っています

于 2013-11-17T07:06:21.223 に答える