How to enable file sharing for my app?
Asked Answered
J

8

174

I have an image editing app where users can apply effects to photos. How could I enable it so that users can see my app in iTunes in the File Sharing tab and then just drag+drop photos to the app?

Some of the eBook readers like Stanza works like this and it would be a cool option. Maybe someone can point out a tutorial or resource that talks about how to enable and use this technique.

Johnsonjohnsonese answered 17/5, 2011 at 11:7 Comment(1)
#34336600Enloe
C
301

You just have to set UIFileSharingEnabled (Application Supports iTunes file sharing) key in the info plist of your app. Here's a link for the documentation. Scroll down to the file sharing support part.

In the past, it was also necessary to define CFBundleDisplayName (Bundle Display Name), if it wasn't already there. More details here.

Certain answered 17/5, 2011 at 11:12 Comment(8)
For those of you challenged like me that is: Application supports iTunes file sharing when editing the info.plist file in Xcode.Yordan
Is there any reason why it couldn't have effect in one application? I enabled it but the the App won't show up on iTunes File SharingGerrald
@Gerrald are you trying with a development build or an ad-hoc build?Certain
@Gerrald you probably have to set up your file types... (document types under target/info)Gran
And in case anyone else is pulling out hair over it not working, check to see if you perhaps have more than one *Info.plist.Flitch
Worked like a charm. Thanks Abhi. Note: The names of the mentioned keys may get changed automatically with Xcode intellisence. (Tried on Xcode 7 and used file sharing without the need of a paid apple developer account)Nobel
Some other are details available at developer.apple.com/library/archive/documentation/General/…Estelaestele
For me, it was ALSO required to set "Supports opening documents in place" to YES, otherwise the app would appear in the Finder, but not in Files.Turncoat
C
50

According to apple doc:

File-Sharing Support
File-sharing support lets apps make user data files available in iTunes 9.1 and later. An app that declares its support for file sharing makes the contents of its /Documents directory available to the user. The user can then move files in and out of this directory as needed from iTunes. This feature does not allow your app to share files with other apps on the same device; that behavior requires the pasteboard or a document interaction controller object.

To enable file sharing for your app, do the following:

  1. Add the UIFileSharingEnabled key to your app’s Info.plist file, and set the value of the key to YES. (The actual key name is "Application supports iTunes file sharing")

  2. Put whatever files you want to share in your app’s Documents directory.

  3. When the device is plugged into the user’s computer, iTunes displays a File Sharing section in the Apps tab of the selected device.

  4. The user can add files to this directory or move files to the desktop.

Apps that support file sharing should be able to recognize when files have been added to the Documents directory and respond appropriately. For example, your app might make the contents of any new files available from its interface. You should never present the user with the list of files in this directory and ask them to decide what to do with those files.

For additional information about the UIFileSharingEnabled key, see Information Property List Key Reference.

Crust answered 22/11, 2013 at 10:34 Comment(3)
Why should the app not present the user with the list of files?Condorcet
@Cuterare : Suppose, You want only mp3 files in document directory but user puts .pdf files then either you leave it, up to user or handle at your end. So take care of what you are doing with files. It's reference from apple's doc, please visit url.Crust
How can I export the log details from windows PC ?Mchugh
K
15

New XCode 7 will only require 'UIFileSharingEnabled' key in Info.plist. 'CFBundleDisplayName' is not required any more.

One more hint: do not only modify the Info.plist of the 'tests' target. The main app and the 'tests' have different Info.plist.

Kettie answered 19/9, 2015 at 12:5 Comment(1)
Hi. I added "Application Supports iTunes file sharing" - "YES" in my info.plist. But the line is removed automatically when I start "Run" button on Xcode. Don't you have the same problem ?Muttra
M
11

If you find by alphabet in plist, it should be "Application supports iTunes file sharing".

Molt answered 23/9, 2016 at 8:28 Comment(0)
T
4

Maybe it's obvious for you guys but I scratched my head for a while because the folder didn't show up in the files app. I actually needed to store something in the folder. you could achieve this by

  • saving some files into your document directory of the app
  • move something from iCloud Drive to your app (in the move dialog the folder will show up). As soon as there are no files in your folder anymore, it's gonna disappear from the "on my iPad tab".
Tychon answered 27/6, 2018 at 20:24 Comment(1)
Thanks for adding this. The only other thing I found confusing is that the first time you turn file sharing on and save a file you have to eject and reconnect your device for anything to show up. Just in case anyone else wastes time messing around with this.Deadpan
C
3

In Xcode 8.3.3 add new row in .plist with true value

Application supports iTunes file sharing

Canoodle answered 30/8, 2017 at 14:55 Comment(0)
A
1

If you editing info.plist directly, below should help you, don't key in "YES" as string below:

<key>UIFileSharingEnabled</key>
<string>YES</string>

You should use this:

<key>UIFileSharingEnabled</key>
<true/>
Aviary answered 13/8, 2020 at 4:40 Comment(0)
A
1

In addition to enabling iTunes file sharing, I had to set

"Supports opening documents in place" to "YES"

in order for my app's Document directory to become visible in Files. Reading and writing worked perfectly without that, but I couldn't get at my app's files outside of the app without making that change.

Anselmo answered 16/7, 2023 at 16:51 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.