ios 应用程序组:物理设备上的文件保存问题(适用于模拟器)

0yg35tkg  于 2023-05-30  发布在  iOS
关注(0)|答案(1)|浏览(219)

bounty还有2天到期。此问题的答案有资格获得+50声望奖励。pmark希望引起更多注意这个问题:

我只是希望有人来验证QuickLook预览扩展可以将文件写入iOS上的应用组容器。
我的iOS应用程序及其相关的预览扩展程序目前遇到问题。我正在尝试使用应用程序组将文件保存到共享容器,以便我的主应用程序可以读取该文件。代码在iOS模拟器上运行得很好,但是当我在物理设备上运行应用程序时,我遇到了“您没有保存文件的权限”错误。
{Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}
下面是相关的代码片段:

let appGroupIdentifier = "group.com.yourcompany.yourapp"

func saveDataToSharedContainer(fileName: String, data: Data) -> Bool {
    guard let containerURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroupIdentifier) else {
        print("Error: Unable to access the shared container.")
        return false
    }

    let fileURL = containerURL.appendingPathComponent(fileName)

    do {
        try data.write(to: fileURL, options: .atomic)
        print("Data saved to shared container successfully.")
        return true
    } catch {
        print("Error: Unable to save data to shared container. \(error)")
        return false
    }
}

打电话给这个:

let fileName = "example.txt"
    let dataToSave = "Hello, World!".data(using: .utf8)!

    if testSaveDataToSharedContainer(fileName: fileName, data: dataToSave) {
        print("Data saved successfully.")
    } else {
        print("Error saving data.")
    }

我已经验证了以下内容:

  • 主应用目标和扩展目标均启用了应用组功能。
  • App Group标识符在主应用目标和扩展目标中以及Swift代码中是一致的。
  • 预配配置文件和签名证书是最新的,在清理项目并重置预配配置文件后,问题仍然存在。

尽管尝试了这些步骤,但问题仍未解决。此错误在具有Preview扩展的新项目中可重现。
我将非常感谢社区的任何见解或建议,以帮助我解决这个问题。
感谢您的评分

9q78igpj

9q78igpj1#

看起来你不能这样做,但是没有关于限制的文档。该主题出现在Apple developer forum.
所以你唯一的办法就是向苹果提交一个bug,要求澄清情况。

相关问题