Общий доступ к файлу в двух целевых приложениях с помощью ГРУППОВОГО приложения

#ios #iphone #xcode #nsfilemanager #ios8

#iOS #iPhone #xcode #nsfilemanager #ios8

Вопрос:

 - (void) readTheFile{

    NSError *error;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *path = [self getTheFilePath];

    if (![fileManager fileExistsAtPath: path])
    {
        NSString *bundle = [[NSBundle mainBundle] pathForResource:@"setting" ofType:@"plist"];

        [fileManager copyItemAtPath:bundle toPath: path error:amp;error];
    }
}

- (NSString *)getTheFilePath{

    NSURL *url =  [[NSFileManager defaultManager]     containerURLForSecurityApplicationGroupIdentifier:@"com.group.test"];
    NSString *path = [url.absoluteString stringByAppendingPathComponent:@"setting.plist"]; 
    path = [path stringByReplacingOccurrencesOfString:@"file:" withString:@""];
    return path;
}
  

Привет всем, у меня проблема с путаницей.
У меня есть две цели в одном проекте, одна из которых является целью расширения.
Итак, я хочу поделиться некоторым файлом plist в обоих целевых приложениях. Итак, я успешно создал групповое приложение в возможностях для обеих целей.
Моя идея заключается в том, что я создал файл plist в одном целевом и другом приложении расширения, которое должно проверить то же местоположение (приведенный выше код) и проверить, существует файл или нет. Если не существует, создайте новый файл plist.
Я протестировал на симуляторе все нормально.
но когда я запускаю на устройстве, появляются все странные вещи.
Когда я читаю файл, getTheFilePath указывает правильный путь, но когда я проверил, существует файл или нет. Он показывает НЕТ.
Но на самом деле я уже создал файл из первой цели.
Итак, программа продолжит и скопирует файл из пакета и вставит в путь.
Но я получил сообщение об ошибке, что файлы уже существуют.

 Error Domain=NSCocoaErrorDomain Code=516 "The operation couldn’t be completed. (Cocoa error 516.)" 
"The operation couldn’t be completed. File exists"  
  

Иногда он автоматически перезапускает устройство. ПОЧЕМУ?

Пожалуйста, помогите мне, я использую бета-версию xCode 6 и протестирован на iOS8 iPhone5S

Комментарии:

1. вы нашли решение для этого.

Ответ №1:

В последнее время я много изучал группы приложений, особенно с появлением iOS 8, и уже несколько раз сталкивался с этой проблемой. Оказывается, это ошибка в текущей бета-версии Xcode. Я уверен, что вы уже поняли это, но для всех, кто не обновился и все еще имеет ту же проблему, это должно решить ее.

Ответ №2:

Извлекаемый вами URL-адрес будет выглядеть следующим образом: file:///var/mobile/Containers/... так что, возможно, вам следует попробовать использовать что-то подобное, что работает для меня:

 NSString *path = [url.absoluteString stringByReplacingOccurrencesOfString:@"file://" withString:@""];