ios - 如何将文件添加到应用组共享目录?

标签 ios permissions filesystems ios8-share-extension bundle-identifier

所以我有一个带有共享扩展的应用程序,每个应用程序都有自己的目标。应用程序包标识符的核心是 com.company.app,共享扩展是 com.company.app.share。每个都有自己的权利文件,核心应用程序是 App Groups -> group.com.company.app 并且共享扩展名相同。这两个包标识符都列在苹果开发者网站上,但出于某种原因,

我似乎没有写入共享的权限 private/var/mobile/Containers/Shared/AppGroup/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Library/Caches/ 目录。

我得到的错误信息是: 您无权将文件“Caches”保存在“Library”文件夹中。

目录是这样保存的:

GetZipURLInItems(self.extensionContext.inputItems, ^(NSURL *url, NSError *error) {
    if (error == nil) {

        NSURL *containerURL = [[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:GroupIdentifier] URLByAppendingPathComponent:@"Library/Caches"];
        NSLog(@"EXT: containerURL: %@", containerURL);

        [WPZipArchive unzipFileAtPath:[url path] toDestination:[containerURL absoluteString]];

        [self listDirectoryAtPath:[containerURL absoluteString]];
    }});

我在这里缺少什么?

最佳答案

问题实际上是使用 [url absoluteString] 与 [url path],将所有 url 更改为路径解决了权限错误。

关于ios - 如何将文件添加到应用组共享目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40617937/

相关文章:

ios - 在 xib 文件中使用拖放时将调用 UIView 的哪个 init 方法

ios - App 在 4 英寸时认为它在 3.5 英寸 iPhone 上运行

permissions - 冲突的目录权限不支持重命名

filesystems - 各种平台保留的文件名是什么?

ios - 快速获取比特率 os 音频项

ios - Xcode:左上角和右上角半径不起作用

ios - 如何让 Jenkins 使用 usr/bin/security?

php - 在运行时通过 chmod 更改权限时出现 "Operation not permitted"错误

linux - 通过 USB 将 Linux native 文件系统作为 VFAT 或 NTFS 导出到 Windows

c++ - std::filesystem::directory_iterator 真的是迭代器吗?