1

我正在开发 iOS 内容拦截器,但我想让用户选择他们想要拦截的列表(广告、曲目、成人网站等)。我发现应用程序扩展和包含应用程序的包是分开的,无法访问彼此的文件,因此需要一个共享容器。我创建了一个应用程序组,但似乎我在那里写的东西实际上并没有被写出来。我正在尝试做的是从包中读取一个 .json 文件,然后将其写入内容阻止程序扩展可以访问的 sharedJson.json 文件。

func writeJsonToSharedJson(arrayOfStrings:[String]) -> Bool {
    let composedString = arrayOfStrings.joined(separator: "\n")
    let sharedJsonPath = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.alexspear.BlockerTestGroup")?.appendingPathComponent("sharedJson.json")
    //let sharedJsonPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("sharedJson.json")
    do {
        try composedString.write(to: sharedJsonPath!, atomically: true, encoding: .utf8)
    }
    catch {
        print("Could not write to sharedJson.json\n")
        return false
    }
    return verifyJsonWrite()
}

结果是通过verifyJsonWrite()函数,那里什么都没有。假设您可以在应用程序组容器中创建文件,我是否不正确?我也尝试过使用 FileManager 的 createFile 函数,结果相同。

4

0 回答 0