写入iOS App组不起作用,并且没有错误

时间:2020-08-10 15:50:59

标签: ios swift safari-extension

我尝试制作一个Safari扩展来屏蔽广告。我想从应用程序生成blockerList.json。为此,我从模型中生成JSON,然后将其保存到注册的应用程序组中。

以下是我的代码,用于将模型转换为JSON,然后将其保存到我的应用程序组中:

        let groupName = "<MY_APP_GROUP>"
        let documentsDirectory = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: groupName)
        let blockListURL = documentsDirectory!.appendingPathComponent("blockerList.json")
        
        let toBlockList = [
            DomainBlockModel(
                action: ActionModel(type: "block"),
                trigger: TriggerModel(url_filter: ".*", if_domain: ["*google.com", "*youtube.com", "*facebook.com"])
            )
        ]
        
        do {
            let encoder = JSONEncoder()
            encoder.outputFormatting = .prettyPrinted
            let jsonData = try encoder.encode(toBlockList)
            try jsonData.write(to: blockListURL)
            
            print(String(data: jsonData, encoding: .utf8)!)
        } catch {
            print(error)
            print("Couldn't write content blocker JSON file")
        }
        
        print(blockListURL.absoluteString)
        let fileExists = FileManager.default.fileExists(atPath: blockListURL.absoluteString)
        print("File exists: \(fileExists.description)")

上面的代码产生以下日志输出:

[
  {
    "trigger" : {
      "url-filter" : ".*",
      "if-domain" : [
        "*google.com",
        "*youtube.com",
        "*facebook.com"
      ]
    },
    "action" : {
      "type" : "block"
    }
  }
]
file:///<app-group-path>/blockerList.json
File exists: false

应用本身和Safari扩展都具有相同的应用组,并已注册到权利文件中。

我对日志的解释是blockerList.json没有保存到应用程序组(“文件存在:false”),但是为什么没有错误/异常?

有人可以帮助解决此类问题吗?还是有人遇到此类问题?

谢谢!

0 个答案:

没有答案