Unable to Write to App Group Shared Container on Device

Hi everyone,

I'm facing an issue where I cannot write a file to a shared App Group container in my tvOS app when running on a real device. My code works perfectly on the simulator, but fails on a physical device with a permissions error. I’ve set up an App Group with a custom identifier (e.g., group.<my.identifier>), and it’s correctly configured in the Capabilities section of Xcode for both my main app and widget targets.

Here’s the code I’m using to save a test file:

func saveTestFile() {
    guard let groupURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.<my.identifier>") else {
        print("Couldn't access the Group URL.")
        return
    }
    
    let containerURL = groupURL.appendingPathComponent("Library", isDirectory: true)
    if FileManager.default.isWritableFile(atPath: containerURL.path) {
        print("Directory IS writable")
    } else {
        print("Directory IS NOT writable")
    }

    let fileURL = containerURL.appendingPathComponent("test.txt")
    let content = "Hello App Group!"
    
    do {
        try content.write(to: fileURL, atomically: true, encoding: .utf8)
        print("File test.txt is saved at: \(fileURL.path)")
    } catch {
        print("Error while saving the file: \(error)")
    }
}

Console:

Directory IS NOT writable Error while saving the file: Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “test.txt” in the folder “<UUID>”." UserInfo={NSFilePath=/private/var/mobile/Containers/Shared/AppGroup/<UUID>/Library/test.txt, NSURL=file:///private/var/mobile/Containers/Shared/AppGroup/<UUID>/Library/test.txt, NSUnderlyingError=0x14387fbe0 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}

I’ve tried saving the file in different subdirectories within the App Group container:

  • Directly in groupURL (root of the container).
  • In groupURL.appendingPathComponent("Library").
  • In groupURL.appendingPathComponent("Caches").

Do you have any ideas what is the problem? Thanks in advance for any help!

Are you doing this from a standard app? Or from some sort of app extension?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Unable to Write to App Group Shared Container on Device
 
 
Q