Ist es in Ordnung, die iPhone-App-Binärdatei mit NSLog-Anweisungen einzureichen?

7

Ich bin gerade dabei, meine erste iPhone App einzureichen.

Ich habe viele NSLog-Anweisungen geschrieben, um die Anwendung zu testen und zu debuggen.

Meine Frage ist also "Ist es in Ordnung, die NSLog-Anweisungen im Quellcode zu behalten"

und ich habe Zweifel, ob die nslog-Anweisungen die gesamte Ausführungszeit verlangsamen oder nicht.

danke.

    
harshalb 05.02.2010, 14:15
quelle

7 Antworten

9

Ich habe es die ganze Zeit benutzt (irgendwo gefunden):

%Vor%

Das three20-Projekt von Facebook bietet eine komplexere Möglichkeit zum Debuggen oder Loggen.

    
Jesse Armand 05.02.2010, 19:06
quelle
6

Eine App, an der ich gerade gearbeitet habe, hatte viele NSLogs, die debugged auf die Konsole luden. Wir haben festgestellt, dass sie die Leistung auf dem iPhone 3G drastisch beeinträchtigt haben. Der Performance-Hit war auf einem 3GS bemerkbar, aber nicht so sehr.

Mein Rat wäre, ein Präprozessor-Makro und eine Debug-Präprozessor-Definition zu verwenden, um NSLogs in Debug-Builds, aber nicht in Release-Builds bedingt zu verwenden.

    
Jasarien 05.02.2010 17:03
quelle
3

Die drei Apps, die ich im AppStore habe, sind mit NSLogs geladen, also denke ich, es ist okay ...

    
fraca7 05.02.2010 14:23
quelle
2

Ich habe meine nie losgeworden:)

Manche Leute empfehlen bedingte Kompilierungs- / Compiler-Makros, damit Sie ohne NSLog einen Build erstellen können, aber ich denke, das ist zu viel Aufwand für sehr wenig Belohnung.

Allerdings verlangsamen NSLogs die App (leicht), damit ich alle entfernen kann, die sich direkt auf die Leistung auswirken. Möglicherweise möchten Sie auch einige Debugging-Protokollinformationen entfernen, um zu verbergen, wie Sie Ihre App implementiert haben usw.

Ich hoffe, das ist hilfreich,

Sam

    
deanWombourne 05.02.2010 14:30
quelle
2

XCode4 bietet hierfür eine ziemlich saubere Lösung - verwenden Sie Breakpoints. Wählen Sie die Aktion 'Eine Nachricht protokollieren' und legen Sie val = @val @ als Nachricht fest. Aktivieren Sie dann das Kontrollkästchen "Automatisch nach der Auswertung der Aktionen fortfahren".

Passt nicht zu jedem Anwendungsfall, aber Sie profitieren von einer einfachen "Inspektion" von Werten und Garantien werden sie es nicht zu einer Veröffentlichung machen.

    
Rasputnik 07.07.2011 23:49
quelle
1

Ich verwende einfach einen "useDebugMode" -Singleton-Int, der auf 0 oder 1 gesetzt ist und in userPrefs (plist) gespeichert ist. Und, abhängig von der UUID des iPhones, füge ich einen "Benutze Debug Modus: ein / aus" Schalter zum Einstellungsbildschirm hinzu, so dass ich Probleme in der Zukunft mit Produktionsversionen debuggen kann. Dies ermöglicht mir das Debuggen von Datenproblemen (mit heruntergeladenem XML), wenn sich Benutzer über Probleme mit dem Programm in der Zukunft beschweren. Ich wickle dann alle "NSLog" s und "printf" s in

%Vor%

Das funktioniert für mich ... Natürlich, das:

%Vor%

verursacht einige Gemeinkosten, mit denen ich mich befassen möchte.

    
Jann 07.02.2010 06:03
quelle
0

Es ist kein Problem, NSLog in Release zu verwenden. Aber wenn Sie wertvolle Daten in das Protokoll schreiben, können andere Benutzer (Entwickler) diese Daten sehen. Wie ein Download Link etc ..

    
Naveen Shan 17.03.2011 07:15
quelle

Tags und Links