How containerURLForSecurityApplicationGroupIdentifier in NSFileManager works on iOS 7

I want to share file between multiple applications in iOS environment.

I’m already using the UIDocumentInteractionController mechanism to achieve the purpose but I’m facing a problem because the hight volume of data to exchange between the application (around 2Go).

  • Build not visible in itunes connect
  • Reusing view in UIPickerView with iOS 7
  • CAGradientLayer, not resizing nicely, tearing on rotation. (video of issue attached)
  • Dropbox SDK - linkFromController: delegate or callback?
  • NSDateFormatter return nil in iOS 5
  • How to change height of text field?
  • I’m using the ZipArchive library to gather all the shared files, but it does fail in some case to create the huge zip file.
    I’ve tried to send a directory instead of the file, but the content is not copied.

    As I’m upgrading to iOS 7, I’m trying to make the new available containerURLForSecurityApplicationGroupIdentifier method in NSFileManager working.
    I’ve followed the few example, but they are for the MAC OS X.

    Is it an apple mistake to have made this API available for iOS 7 too or which instruction are required to make it working.

    Here is the application entitlements file content:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>com.apple.security.app-sandbox</key>
        <true/>
        <key>com.apple.security.application-groups</key>
        <array>
            <string>$(TeamIdentifierPrefix)com.example.AppFileSharing</string>
        </array>
        <key>keychain-access-groups</key>
        <array>
            <string>$(AppIdentifierPrefix)com.example.AppFileSharing</string>
        </array>
    </dict>
    </plist>
    

    Here is the sample code to access the container:

    NSFileManager* fileManager = [NSFileManager defaultManager];
    NSURL* containerURL = [fileManager 
    containerURLForSecurityApplicationGroupIdentifier:@"com.example.AppFileSharing"];
    NSLog(@"%@", containerURL);
    

    When I’m running the app, the containerURL is null.

    It would be really great to have this function working.

    Regards,

    DAB

    2 Solutions Collect From Internet About “How containerURLForSecurityApplicationGroupIdentifier in NSFileManager works on iOS 7”

    You probably have not enabled App Groups for your app. You will have to create a Identifier for your App Group in Member Center on the Apple developer site.

    enter image description here

    enter image description here

    I just started working with this today to play with iOS 8 App Extensions. I got it to initially work (returning a real directory and not nil) by prepending my developer team ID to the identifier.

    NSURL* containerURL = [fileManager
    containerURLForSecurityApplicationGroupIdentifier:@"YOUR_TEAM_ID.com.example.AppFileSharing"];