2010-06-30 7 views
1

Je travaillais avant l'OS 4.0 avec mon iPhone et j'écrivais sur media/DCIM/100APPLE. Je pourrais télécharger ces fichiers en utilisant DiskAid. C'était une solution de développement parfaite. Mon fournisseur sans demander mis à jour mon téléphone à 4.0. Bang, je ne suis plus capable d'écrire n'importe où visible. En distribution nous utiliserons le répertoire temporaire, pas de problème mais en dev, j'ai besoin de voir que les fichiers sont écrits correctement. J'ai essayé UIFileSharingEnabled iPhone 4.0 OS écrivant au fichier visible dans le bac à sable

Cela a beaucoup de problèmes et je comprends qu'il est seulement reconnu dans une application déployée, pas dans la construction et le débogage. Si je ne supprime pas l'application avant l'installation, elle ne me laisse pas écrire ce que je veux dans le dossier de document trouvé par

NSArray * paths = NSSearchPathForDiriesiesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); NSString * tempDir = [chemins objectAtIndex: 0];

Si je supprime l'application de l'iphone et la réexécute pour la première fois depuis xcode, je reçois Erreur lors du lancement du programme distant: Aucun fichier ou répertoire (/ private/var/mobile/Applications/34846A80-429F- 46CB-AC4B-09A701255839/myapp.app/myapp). Le seul moyen de contourner le problème est de supprimer le partage de fichiers à partir du fichier info.plist exécuté par le débogueur et que l'application s'exécute normalement, bien sûr, elle n'écrit toujours pas dans le tempDir ci-dessus.

Tout fonctionne correctement avec NSString * tempDir = NSTemporaryDirectory(); mais je ne peux pas voir le dossier écrit et je suis aveugle.

Est-ce que quelqu'un a trouvé une solution pour travailler dans le noir.

+0

Votre fournir vous a mis à jour vers iOS 4.0? Comment? – ceejayoz

Répondre

0

Je suis d'accord avec @ceejayoz, vous et iTunes mis à jour votre téléphone, les fournisseurs de cellules ne peuvent pas pousser les mises à jour. Vous deviez l'accepter. Cela mis à part, pourquoi ne pouvez-vous pas simplement l'exécuter dans le simulateur? Ensuite, toutes les écritures de fichiers dans le répertoire temporaire de l'application seront sur le disque dur de votre ordinateur. Le sim stocke son système de fichiers dans ~/Library/iPhone Simulator ou quelque chose de proche.

+0

L'application utilise une caméra donc le simulateur ne fera pas. (Le téléphone s'est bloqué et le fournisseur a dit que la carte SIM fournie n'était pas la dernière et que tous les téléphones avaient besoin de la mise à jour de la carte SIM.) Elle a mis la carte SIM et elle n'a pas aidé. parti, mes notes et walla j'avais 4.0!). Cela peut donc arriver sans votre autorisation! –

+0

Wow, je voudrais demander au fournisseur de me donner des réductions importantes. Il n'y a aucun appel pour qu'ils perdent toutes vos données sans même un avertissement. – jamone

+0

Eh bien, la jeune femme essayait d'aider, même si. Quoi qu'il en soit, je serais ici tôt ou tard avec une mise à niveau volontaire et besoin de mordre la balle et passer à travers 4.0. –

1

Vous pouvez en effet utiliser le partage de fichiers iTunes pour les applications que vous développez, et pas seulement pour celles qui ont été déployées sur l'App Store. Je ne sais pas ce qui ne va pas dans votre cas, parce que le code vous montrer:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

est ce que j'utilise pour saisir sans problème le répertoire de l'application de documents.

Vous pouvez lire et écrire dans ce répertoire librement, et son contenu est mis à jour en temps réel pendant que iTunes est connecté à l'appareil.

Le code source à my application qui utilise le partage de fichiers est disponible, vous pouvez donc jeter un coup d'œil si cela peut vous aider.

+0

Merci pour cela, je vais jeter un oeil à la source, mais j'utilise cette méthode exacte pour récupérer le répertoire et pour une raison quelconque, il refuse d'écrire, sans un message d'erreur dans les journaux. L'autre problème du partage de fichiers et de voir les fichiers dans Itunes ... un autre mystère à résoudre. Il a été mentionné d'ajouter un paquet du type de fichier pour le partage en plus pour le UIFileSharingEnabled, mais j'ai douté que cela soit nécessaire et est le problème. Peut-être que je devrais essayer ça aussi. –

0

J'ai eu un problème similaire. J'ai utilisé la routine avec les chemins NSArray * et documentsDirectory pour télécharger des fichiers à partir d'un serveur et travailler avec eux dans le téléphone. Tout allait bien jusqu'à ce que 4.0 est sorti et maintenant l'application fonctionne dans le simulateur, mais ne fonctionnera pas dans l'IPhone. Le flux d'écriture ne sera pas ouvert et je reçois cette erreur:

erreur Domaine = NSPOSIXErrorDomain code = 1 «L'opération n'a pas pu être terminée Opération non autorisée » UserInfo = 0x264d10 {} - Erreur

+0

Le problème de l'écriture est résolu pour moi avec quelque chose de trivial. Je n'avais pas remarqué que NSString * tempDir1 = NSTemporaryDirectory(); et le \t NSString * tempDir = [paths objectAtIndex: 0]; retourne les répertoires un avec un "/" final et un sans. tempDirectory =/private/var/mobile/Applications/444D1E90-E302-4E7C-AE1E-3C007272C546/tmp/ homeDirectory =/var/mobile/Applications/444D1E90-E302-4E7C-AE1E-3C007272C546/Documents J'ai encore un problème avec le partage de travail. La case à cocher est cochée et pourtant iTunes ne la prendra pas. Il voit FileApp juste pas mon application. –

Questions connexes