NSLog()
ile bir grup veri kaydediyorum. IPhone'um geliştirme makineme bağlı olmadığında ve bir hata ayıklayıcısında çalışırken günlük verilerini yakalamanın bir yolu var mı? Örneğin, bir dosyaya yeniden yönlendirebilir ve daha sonra Xcode üzerinden daha sonra bir zamanda kayıt dosyasını okuyabilir miyim? Wi-Fi zayıf olduğunda benim app test etmek için bunu yapmak gerekir, bu benim masamdan uzak gitmek gerekir.Bir hata ayıklayıcıya bağlı değilken iPhone'da NSLog'un çıkışını yakalamanın bir yolu var mı?
cevap
NSLog() çağrılarının sistem konsolu günlüğüne yazılacağına eminim. Bu nedenle, iPhone'u çevrimdışı olduktan sonra bilgisayarınıza bağlarsanız, XCode Düzenleyicisi'nde konsol günlüğüne bakabilmeniz gerekir. Tek uyarı, konsol günlüğünün boyut olarak sınırlı olmasıdır, bu nedenle çok sayıda günlük kaydı yaparsanız daha büyük girişler atlanabilir.
Aşağıdaki yöntem, uygulamanızın Belgeler klasöründe “console.log” adlı bir dosya adı oluşturacaktır, böylece daha sonra okuyabilirsiniz.
Çağrı programın başında bu yöntemi:
günlük silinecek asla- (void) redirectConsoleLogToDocumentFolder
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"console.log"];
freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
}
, bu yüzden dikkatli kullanın. Uygulamanızı sınandıktan sonra, telefonunuzu Mac'inize yeniden bağlayın, Xcode'da Ajanda'yı açın. Özet panelinde, telefonunuzdaki tüm uygulamaların listesine sahip olursunuz. Hata ayıkladığınız alanı genişletin ve "Uygulama Verileri" adlı bir paket görürsünüz.
Adının sağındaki oku tıklayın ve bunu kaydedin. Paket Tanımlayıcınızın adı ve ardından bir tarih içeren bir klasörle sonlanacaksınız. console.log
Günlüğün boyutu hakkında endişeleriniz varsa, küçük bir değişiklik, freopen() içinde "a +" "w" olarak değiştirmektir. Ama bu diğer uyarıyı yaratır, programın çalıştırıldığı her defasında sıfırdan yeniden oluşturulacağı için programın çalıştırılacağından emin olun (bu çok büyük bir dosya gibi büyük bir engel olabilir) – KevinDTimm
Teşekkür ederim :) Dosyaya de log kaydetme ve aynı anda xcode konsolunda NSLog gösterme mümkün mü? –
Marc Novakowski içermelidir Dokümanlar Klasör bulacağınız bu klasöre, İç
haklı. Konsol çıkışı telefona giriş yapar ve Mac'inizi telefonunuza bağladığınızda konsol çıkışı düzenleyici penceresinde kullanılabilir.
Sadece cihaz panelinden telefonunuzu seçin ve konsol sekmesini seçin. Son konsol çıkışı orada olacak. Çok havalı.
Sadece bunu anladım. Bilgisayarınızdan uzakta olmanız gereken yerleri açıkladığınız durumlarda bu çok yardımcı olacaktır.
BTW, Zayıf WiFi sinyallerini test etme ihtiyacına bir çözüm buldum. Telefonunuzu alüminyum folyoya sarın, USB kablosu folyo sargısından yapışır. Bununla birlikte çalışıyorsanız, hata ayıklayıcısındaki kodu tek adımda atabilirsiniz. Kullanıcı arayüzünü kullanamazsınız, ancak 3D, WiFi ve GPS gibi radyo sinyallerini bozabilir/ortadan kaldırabilirsiniz. Sinyal gücünü bozmak, ancak tamamen iptal etmek istemiyorsanız, folyo ile telefonun kısmen örtülmesi, kaplamaya küçük delikler yerleştirilmesi vb. Ile denemeniz gerekebilir.
Bir uyarı: Telefonu sarılı bırakmayın Bir seferde birkaç dakikadan fazla folyo için. Muhtemelen aşırı ısınır.
Ayrıca App Store'da bir Console uygulaması vardır, ancak yalnızca iOS 6 ve önceki sürümlerde çalışır.
iOS 7 çıktığında, it effectively stopped working. (Artık tüm sistemdeki değil, sadece kendi Konsol loglarını okuyabilir.
Bu sorunun yaşı göz önüne alındığında, cevabınızın uzunluğu ve söz konusu uygulamanın bir "Chris" tarafından geliştirildiği gerçeği, belki de uygulamanın muhtemelen kendiniz tarafından yapıldığını açıklamalısınız. :) –
Aslında bu yazılımın yazarı değilim, siz yine de aynı isme sahibiz. –
Bu durumda içten özür dilerim! –
- 1. mockito: Stubbed yönteminin dönüş değerini yakalamanın bir yolu var mı?
- 2. JS ile hata ayıklayıcıya basarken jQuery/Backbone/Underscore kodunu atlamanın bir yolu var mı?
- 3. , bir işlevde hem json hem de html için istekleri yakalamanın herhangi bir yolu var mı?
- 4. Parametreyi çıkarmanın bir yolu var mı?
- 5. sdk'de bir Flex hata ayıklayıcısı var mı?
- 6. JCLDebug ile tüm istisnaları (ele alınanları bile) yakalamanın bir yolu var mı?
- 7. Veritabanı çıkışı bir veritabanı tablosunun dışına img-elementlerin çıkışını önlemek için bir yolu var mı görüntülerin
- 8. Bir birim testinde yapılan baskının bastırılmasının bir yolu var mı?
- 9. Bir tartışmayı Google Apps Komut Dosyası hata ayıklayıcıya nasıl iletirsiniz?
- 10. Sklearn: Pipeline'larda hata ayıklamanın bir yolu var mı?
- 11. Keyboard.FocusedElement öğesine bağlamanın bir yolu var mı?
- 12. Pydev'de REPL almanın bir yolu var mı?
- 13. Otomatik olarak require.txt çıktı almanın bir yolu var mı?
- 14. Tip bildirimlerini genişletmenin bir yolu var mı?
- 15. Hafızayı sınırlamanın bir yolu var mı?
- 16. TensorFlow baskılarını bastırmanın bir yolu var mı?
- 17. Bir mermi arşivi eserlerini temizlemenin kolay bir yolu var mı?
- 18. Python argparse: Nargilerde bir aralık belirtmenin bir yolu var mı?
- 19. Asp.net mvc Razor ViewEngine ile isteğe bağlı bir seçenek oluşturmanın bir yolu var mı?
- 20. Hangi paketlerin belirli bir pakete bağlı olduğunu öğrenmenin bir yolu var mı (Julia)?
- 21. Bir Heroku Dyno'yu uyumaya zorlamanın bir yolu var mı?
- 22. svn çalışma kopyasını kaldırmanın bir yolu var mı? svn autoremove?
- 23. CGPoints'i karşılaştırmanın bir yolu var mı?
- 24. RubyGems'i çevrimdışı güncellemenin bir yolu var mı?
- 25. Düzenleri canlandırmanın bir yolu var mı? [Android]?
- 26. YQL'i HTML'ye döndürmenin bir yolu var mı?
- 27. WiX yapılarını hızlandırmanın bir yolu var mı?
- 28. cuBLAS'da "saypx" yapmanın bir yolu var mı?
- 29. Files.write (...) yöntemini almanın bir yolu var mı?
- 30. "Vurgulu" kodun herhangi bir yolu var mı?
İyi çağrı - iPhone geliştirme konusunda yeniyim ve NSLog() ürününün çıktısını görmenin tek yolu hata ayıklama konsolu idi. –