2016-10-05 4 views
9

Ich arbeite an Inhaltsblocker und blockieren die Erwachsenen-Website, so ist dieser Code perfekt Arbeit am Simulator, wenn ich auf iPhone 6 dann seine keine Seite BlockInhalt Blocker funktioniert im Simulator, aber funktioniert nicht in iPhone Gerät

testen
Alamofire.request(url).responseJSON { response in 
      if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) { 
       print("Data: \(utf8Text)") 

       self.containerURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.domainName.contentBlocker") 
       let path = self.containerURL?.appendingPathComponent("blockerList.json") 

       self.text = utf8Text.description 
       do { 

        try self.text.write(to: path!, atomically: true, encoding: String.Encoding.utf8) 
       }catch{ 
        print(error) 
       } 
       print(path) 

      } 
     } 

Dann nach dem Laden von Daten auf Erweiterung Handler-Datei. Vielen Dank im Voraus.

+1

Unten ist der Link von Github Code: ** https: einen Blick auf sie haben //github.com/krishkumar/BlockParty**, kann es Ihnen helfen kann. – jiten

+1

@jiten ich benutze es bereits, aber es funktioniert auch nicht in realen Gerät. – Rock

+0

Die Tatsache, dass es im Simulator, aber nicht auf einem Gerät funktioniert, kann auf ein Problem mit der Berechtigung/Codeunterzeichnung hinweisen. Stellen Sie sicher, dass in beiden Zielen (App und Erweiterung) App-Gruppen aktiviert sind und die Mitgliedschaft in der richtigen Gruppe deklariert ist. – Jiri

Antwort

0

Ich hatte ein ähnliches Problem, wo das Lesen der Inhalte der Gruppe direkt am Simulator funktioniert, aber nicht auf einem Gerät. Dies wurde behoben, indem ein Unterverzeichnis in der Gruppe erstellt wurde und alle Lesevorgänge in diesem Unterverzeichnis ausgeführt wurden.

if let root = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "YOUR_GROUP_NAME") { 
    let url = root.appendingPathComponent("storage") 
    try? FileManager.default.createDirectory(at: url, withIntermediateDirectories: true, attributes: nil) 

    let fileCoordinator = NSFileCoordinator() 
    var error: NSError? 
    fileCoordinator.coordinate(readingItemAt: url, options: .withoutChanges, error: &error) { url in 

     if let urls = try? FileManager.default.contentsOfDirectory(at: url, includingPropertiesForKeys: [.canonicalPathKey], options: []) { 
      for u in urls { 
       print("\(u.standardizedFileURL)") 
      } 
     } 
    } 
} 
Verwandte Themen