Share and Copy Files Between an App and iTunes

You can share files between an iOS app and your Mac using file sharing via iTunes. Using file sharing the contents of your application’s Documents directory is available in iTunes. This also works the other way, where you can place files from your Mac into the shared area of iTunes and make them available to your iOS app.

This feature works well if you need to log information from within your app and make the log available for offline viewing at another time. I’ve used idea this a number of times to save debugging information for later viewing.

UIFileSharingEnabled

The first step is to add the flag UIFileSharingEnabled to the application plist file. If you edit the plist as XML, you can add the flag as shown here:

<key>UIFileSharingEnabled</key>
<true/>

Using the plist editor, the entry is as shown below:

Write a file to Document Directory

With the property file updated, the next step is to write a file to the Documents directory within the app. The code below creates an array as well as a dictionary object and writes both containers to a file named DictionaryContents.text.

- (void) writeFileToDocumentDirectory
{
  NSArray *grains = [NSArray arrayWithObjects: 
                    @"Caramunich", @"Hallertauer", @"Special B", nil];
 
  NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                             grains, @"arrayKey", @"Magnum", @"hopKey", @"Belgian Strong", @"yeastKey", nil];
 
  // Get path to documents directory
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                                                       NSUserDomainMask, YES);
  if ([paths count] > 0)
  {
    // Path to save dictionary
    NSString  *dictPath = [[paths objectAtIndex:0] 
                           stringByAppendingPathComponent:@"DictionaryContents.text"];
    // Write dictionary
    [dictionary writeToFile:dictPath atomically:YES];    
  }
}

Call the method above somewhere in your application to write the file to the Documents directory.

iTunes File Sharing

To view the file within iTunes, plugin your device and select your device in the DEVICES section on the left:

Choose the Apps button on the top of iTunes and scroll to the bottom of the screen, you will see a list of all the apps that can transfer files between your computer and your device.

Save the file DictionaryContents.txt to your system, the contents will look as follows:

<?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>arrayKey</key>
  <array>
    <string>Caramunich</string>
    <string>Hallertauer</string>
    <string>Special B</string>
  </array>
  <key>hopKey</key>
  <string>Magnum</string>
  <key>yeastKey</key>
  <string>Belgian Strong</string>
</dict>
</plist>
Copy Files To An App

You can also copy files from your system to the Documents directory, making the files accessible to your app – drag/drop files onto the Sandbox Documents area.

Keeping Data Private

– If you need to keep application information private, do not store the files in the Documents directory. Instead, store private information in the Library directory, or a folder within that directory. With one exception, the Library directory and all its sub-directories will be preserved across application backups and updates – /Library/Caches is not saved.

– With file sharing, you cannot share files between applications.

  1. Thanks for you simple & straight forward blog

Comments are closed.