Ios 使用GROUP APP在两个目标内共享该文件

Ios 使用GROUP APP在两个目标内共享该文件,ios,iphone,xcode,nsfilemanager,ios8,Ios,Iphone,Xcode,Nsfilemanager,Ios8,大家好,我有个困惑的问题。 我在一个项目中有两个目标,一个是扩展目标。 所以我想在两个目标中共享一些plist文件。因此,我成功地为这两个目标在功能中创建了组应用程序。 我的想法是我在一个目标中创建了plist文件,其他扩展应用程序需要检查相同的位置(上面的代码),并检查文件是否存在。如果不存在,则创建新的plist文件。 我在模拟器上进行了测试,一切正常。 但当我在设备上运行时,所有奇怪的事情都会出现。 当我读取文件时,getTheFilePath会给出正确的路径,但当我检查文件是否存在时。它

大家好,我有个困惑的问题。
我在一个项目中有两个目标,一个是扩展目标。
所以我想在两个目标中共享一些plist文件。因此,我成功地为这两个目标在功能中创建了组应用程序。
我的想法是我在一个目标中创建了plist文件,其他扩展应用程序需要检查相同的位置(上面的代码),并检查文件是否存在。如果不存在,则创建新的plist文件。
我在模拟器上进行了测试,一切正常。
但当我在设备上运行时,所有奇怪的事情都会出现。
当我读取文件时,getTheFilePath会给出正确的路径,但当我检查文件是否存在时。它显示没有。 但实际上我已经从第一个目标创建了该文件。
因此,程序继续并将文件从捆绑包复制并粘贴到路径中。
但是我得到了关于文件已经存在的错误

- (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:&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;
}
有时它会自动重启设备。为什么?


请帮帮我,我正在使用xCode 6 beta版,并在iOS8 iPhone5s上进行了测试。最近,我一直在研究应用程序组,尤其是在即将推出iOS 8的情况下,并且已经多次遇到这个问题。事实证明,这是Xcode当前beta版中的一个bug。我相信你现在已经明白了这一点,但对于那些没有更新但仍然有相同问题的人来说,这应该可以解决问题。

你正在检索的url将如下所示:
file:///var/mobile/Containers/...
所以,也许你应该尝试使用这样的东西,这对我来说是有效的:

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

你找到解决这个问题的办法了吗。
NSString *path = [url.absoluteString stringByReplacingOccurrencesOfString:@"file://" withString:@""];