Comment activer le partage de fichiers pour mon application?


158

J'ai une application de retouche d'image où les utilisateurs peuvent appliquer des effets aux photos. Comment pourrais-je l'activer afin que les utilisateurs puissent voir mon application dans iTunes dans l'onglet Partage de fichiers, puis simplement faire glisser et déposer des photos dans l'application?

Certains lecteurs de livres électroniques comme Stanza fonctionnent comme ça et ce serait une option intéressante. Peut-être que quelqu'un pourrait vous indiquer un didacticiel ou une ressource expliquant comment activer et utiliser cette technique.


Réponses:


282

Il vous suffit de définir la touche UIFileSharingEnabled( Application Supports iTunes file sharing) dans la liste d'informations de votre application. Voici un lien vers la documentation. Faites défiler jusqu'à la partie prise en charge du partage de fichiers.

Dans le passé, il était également nécessaire de définir CFBundleDisplayName( Bundle Display Name), si ce n'était pas déjà là. Plus de détails ici .


57
Pour ceux d'entre vous qui ont des défis comme moi, c'est: l' application prend en charge le partage de fichiers iTunes lors de l'édition du fichier info.plist dans Xcode.
LavaSlider

Y a-t-il une raison pour laquelle cela ne pourrait pas avoir d'effet dans une seule application? Je l'ai activé mais l'application
n'apparaîtra

@rraallvv essayez-vous avec une version de développement ou une version ad hoc?
Vin

@rraallvv vous devez probablement configurer vos types de fichiers ... (types de documents sous target / info)
nielsbot

Et au cas où quelqu'un d'autre s'arracherait les cheveux dessus ne fonctionnant pas, vérifiez si vous avez peut-être plus d'un * Info.plist.
Tony Adams

42

Selon Apple doc :

Prise en charge du partage de
fichiers La prise en charge du partage de fichiers permet aux applications de rendre les fichiers de données utilisateur disponibles dans iTunes 9.1 et versions ultérieures. Une application qui déclare sa prise en charge du partage de fichiers met le contenu de son répertoire / Documents à la disposition de l'utilisateur. L'utilisateur peut ensuite déplacer des fichiers dans et hors de ce répertoire selon les besoins à partir d'iTunes. Cette fonctionnalité ne permet pas à votre application de partager des fichiers avec d'autres applications sur le même appareil; ce comportement nécessite la table de montage ou un objet contrôleur d'interaction de document.

Pour activer le partage de fichiers pour votre application, procédez comme suit:

  1. Ajouter la UIFileSharingEnabled clé du fichier Info.plist de votre application, et définir la valeur de la clé OUI . (Le nom réel de la clé est "L'application prend en charge le partage de fichiers iTunes")

  2. Placez les fichiers que vous souhaitez partager dans le répertoire Documents de votre application.

  3. Lorsque l'appareil est branché sur l'ordinateur de l'utilisateur, iTunes affiche une section Partage de fichiers dans l'onglet Applications de l'appareil sélectionné.

  4. L'utilisateur peut ajouter des fichiers à ce répertoire ou déplacer des fichiers vers le bureau.

Les applications qui prennent en charge le partage de fichiers doivent être en mesure de reconnaître quand des fichiers ont été ajoutés au répertoire Documents et de répondre de manière appropriée. Par exemple, votre application peut rendre le contenu de tout nouveau fichier disponible à partir de son interface. Vous ne devez jamais présenter à l'utilisateur la liste des fichiers de ce répertoire et lui demander de décider quoi faire avec ces fichiers.

Pour plus d'informations sur la clé UIFileSharingEnabled, consultez Informations de référence sur la clé de la liste des propriétés .


1
Pourquoi l'application ne devrait-elle pas présenter à l'utilisateur la liste des fichiers?
Cutetare

1
@Cuterare: Supposons que vous ne vouliez que des fichiers mp3 dans le répertoire du document, mais que l'utilisateur place des fichiers .pdf, soit vous le laissez, à l'utilisateur, soit le manipulez à votre fin. Prenez donc soin de ce que vous faites avec les fichiers. C'est une référence du doc ​​d'Apple, veuillez visiter l'URL.
Nico

Comment puis-je exporter les détails du journal depuis Windows PC?
Vineesh TP

13

Le nouveau XCode 7 ne nécessitera que la clé 'UIFileSharingEnabled' dans Info.plist. 'CFBundleDisplayName' n'est plus nécessaire.

Encore un conseil: ne modifiez pas seulement le fichier Info.plist de la cible 'tests'. L'application principale et les «tests» ont différents Info.plist.


Salut. J'ai ajouté «L'application prend en charge le partage de fichiers iTunes» - «OUI» dans mon info.plist. Mais la ligne est supprimée automatiquement lorsque je lance le bouton "Exécuter" sur Xcode. Tu n'as pas le même problème?
M.Masa

6

Si vous trouvez par alphabet dans plist, cela devrait être "L'application prend en charge le partage de fichiers iTunes".


2

C'est peut-être évident pour vous les gars, mais je me suis gratté la tête pendant un moment parce que le dossier n'apparaissait pas dans l'application Fichiers. J'avais en fait besoin de stocker quelque chose dans le dossier. vous pourriez y parvenir en

  • enregistrer certains fichiers dans votre répertoire de documents de l'application
  • déplacez quelque chose d'iCloud Drive vers votre application (dans la boîte de dialogue de déplacement, le dossier apparaîtra). Dès qu'il n'y aura plus de fichiers dans votre dossier, il disparaîtra de l'onglet "sur mon iPad".

Merci d'avoir ajouté ceci. La seule autre chose que j'ai trouvée déroutante est que la première fois que vous activez le partage de fichiers et enregistrez un fichier, vous devez éjecter et reconnecter votre appareil pour que quoi que ce soit apparaisse. Juste au cas où quelqu'un d'autre perdrait du temps à jouer avec ça.
Cosworth66

1

Dans Xcode 8.3.3, ajoutez une nouvelle ligne dans .plist avec la valeur vraie

L'application prend en charge le partage de fichiers iTunes

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.