Sur une version de débogage dans Xcode, que j'utilise le simulateur ou un périphérique réel, les instructions NSLog, printf, fprintf assert et NSAssert apparaissent sur la console.
Si je lance maintenant une version de build sur le périphérique (disons que j'envoie une version de vol d'essai et que tout se passe bien sur mon iPhone; ce sera une version de version), lesquels (s'ils existent) sont enregistrés?
Et comment puis-je récupérer le journal?
NSLog génère-t-il réellement quelque chose lors de la compilation? Quel est le facteur déterminant? Que ce soit pour écrire sur stdout ou stderr? seul stderr est-il écrit dans le journal du périphérique? Est-ce que cela signifie que je dois utiliser fprintf? Est-ce que TOUT est écrit dans le journal de l'appareil? y a-t-il même une telle chose? Si oui, comment le récupérer?
Quelqu'un pourrait-il clarifier la situation?
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]];
NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:fileName];
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
Ajoutez simplement ce bloc de code dans la méthode application:didFinishLaunchingWithOptions
dans le fichier délégué de l'application pour créer un fichier journal dans le répertoire du document d'application sur iPhone qui consigne tous les événements de journal de la console. Vous devez importer ce fichier à partir d'iTunes pour voir tous les événements de la console.
Remarque: dans le fichier .plist, assurez-vous que Application supports iTunes file sharing
existe et est défini sur YES
afin de pouvoir y accéder via iTunes.
Pour obtenir des fichiers journaux: Lancez iTunes, une fois votre appareil connecté, sélectionnez Applications - sélectionnez votre document d'augmentation d'app-in pour obtenir votre fichier. Vous pouvez ensuite l'enregistrer sur votre disque
Dans Xcode 6.1.1, vous pouvez afficher la sortie de NSLog en procédant comme suit. Cependant, je ne suis pas sûr que cela vous permette de voir les journaux depuis trop longtemps. Je l'ai seulement vu remonter à quelques heures.
En tout cas, voici les étapes:
Dans Swift 3.0, le code de Shyl deviendra,
var paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = paths[0]
let fileName = "\(Date()).log"
let logFilePath = (documentsDirectory as NSString).appendingPathComponent(fileName)
freopen(logFilePath.cString(using: String.Encoding.ascii)!, "a+", stderr)
tous les autres processus sont les mêmes que ceux expliqués par Shyl
Ajoutez simplement ce bloc de code dans l’application: La méthode didFinishLaunchingWithOptions dans le fichier délégué de l’application. Un fichier journal sera créé dans le répertoire du document de l’application sur iPhone qui consigne tous les événements de journal de la console. Vous devez importer ce fichier à partir d'iTunes pour voir tous les événements de la console.
Remarque: Dans le fichier .plist, assurez-vous que
Application supports iTunes file sharing
existe et est défini surYES
afin de pouvoir accéder à via iTunes.Pour obtenir des fichiers journaux: Lancez iTunes après la connexion de votre appareil sélectionnez Applications - sélectionnez votre document d'augmentation d'app-in, vous obtiendrez votre fichier. Vous pouvez ensuite l'enregistrer sur votre disque
NSLog est écrit dans le journal des appareils de la version de production et vous pouvez le vérifier en connectant votre iPhone à votre système et en utilisant Organizer. Sélectionnez votre iPhone dans l'organiseur, cliquez sur Journaux de périphérique. Vous verriez toutes les sorties NSLog dans le journal.
J'ai trouvé ce lien d'Apple très instructif et complet… .. Il vous donne toutes les options pour voir ou accéder aux journaux du périphérique, qu'ils soient connectés ou non à votre machine de développement.
https://developer.Apple.com/library/ios/qa/qa1747/_index.html
Oui, NSLog est affiché sur le périphérique. Vous pouvez voir ses sorties avec votre appareil connecté à votre Mac et à l'aide de l'outil Xcode Organizer.
Si vous utilisez le Kit de développement logiciel (SDK) Testflight, vous pouvez capturer tous les journaux à l’aide de leur fonction Enregistrement à distance .
Je pense que dans Xcode 9.3, l'écran du journal de périphérique a été déplacé vers un nouvel emplacement. Veuillez vous référer au lien suivant.
Obtenir les journaux de périphérique lors de l'exécution dans Xcode
Je sais que c'est un ancien fil de discussion, mais vous pouvez également avoir accès aux journaux des périphériques qui vont à:
Paramètres -> Confidentialité -> Analytique -> Données
J'espère que cette aide
Cordialement