0

我正在阅读很多关于这个问题的问题。我正在为我的应用程序使用 Phonegap。我的应用程序下载了大约 3mb 的图像。Apple 拒绝我的应用程序并建议对所有文件应用“不备份属性”。如何防止文件备份到 iCloud 和 iTunes?

我将此代码用于我的 5.1 应用程序:

- (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;
 }

我把它放在我的 AppDelegate.m 中。这是对的吗?

4

3 回答 3

1

您现在将文件存储在哪里?我猜你是在使用标准的 Phonegap 示例:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, null);

一个解决方案是为您的 FileSytem 请求使用以下代码,这将重新获取您应用程序的临时目录:

window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, onSuccess, onError);

LocalFileSystem.TEMPORARYiOS 上会指向

/var/mobile/Applications/CEEECEA6-4684-4599-B0BF-407BE2CBD3CE/tmp

亲切的问候,

麦克风

于 2012-12-14T10:29:14.907 回答
0

这应该是在我身边工作的正确代码:

var DATADIR;
var knownfiles = []; 

function init() {
          window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFSSuccess, null);
}

function onFSSuccess(fileSystem) {
    console.log("here I am");
    fileSystem.root.getDirectory("it.mns.dcsofficebp",{create:true},gotDir,false);
}
function gotDir(d){
    DATADIR = d;
    DATADIR.setMetadata(onSetMetadataSuccess, onSetMetadataFail, { "com.apple.MobileBackup": 1});
}

function onSetMetadataSuccess() {
    console.log("success setting metadata - DONE DONE DONE!")
}
function onSetMetadataFail() {
    console.log("error setting metadata")
}

这是我的结果:2012-12-14 12:46:20.064 testproj[1779:c07] [LOG] 成功设置元数据 - DONE DONE DONE!

于 2012-12-14T11:27:59.617 回答
0

这是我的代码

   var DATADIR;
   var knownfiles = []; 

   function init() {
         document.addEventListener("deviceready", onDeviceReady, true);
   }

   function onDeviceReady() {
          window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFSSuccess, null);    
    }

    //Loaded my file system, now let's get a directory entry for where I'll store my crap    
    function onFSSuccess(fileSystem) {
         fileSystem.root.getDirectory("it.mns.dcsofficebp",{create:true},gotDir,onError);
    }

    //The directory entry callback
    function gotDir(d){
         DATADIR = d;
         var reader = DATADIR.createReader();
         localStorage.setItem("datadir",JSON.stringify(DATADIR));
         reader.readEntries(function(d){
             appReady();
         },onError);
    }

     //Result of reading my directory
     function gotFiles(entries) {
         for (var i=0; i<entries.length; i++) {
                knownfiles.push(entries[i].name);
                renderPicture(entries[i].fullPath);
          }
      }

我需要放在哪里

parent.setMetadata(onSetMetadataSuccess, onSetMetadataFail, { "com.apple.MobileBackup": 1});
于 2012-12-14T11:22:19.163 回答