Saat menggunakan Xcode 8+ dan membuat proyek kosong baru, log berikut muncul saat menjalankan aplikasi:
2016-06-13 16:33:34.406093 TestiOS10[8209:100611] bundleid: com.appc.TestiOS10, enable_level: 0, persist_level: 0, propagate_with_activity: 0
2016-06-13 16:33:34.406323 TestiOS10[8209:100607] Created DB, header sequence number = 248
2016-06-13 16:33:34.409564 TestiOS10[8209:100611] subsystem: com.apple.UIKit, category: HIDEvents, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
2016-06-13 16:33:34.504117 TestiOS10[8209:100607] Created DB, header sequence number = 248
2016-06-13 16:33:34.548023 TestiOS10[8209:100607] subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
2016-06-13 16:33:34.568458 TestiOS10[8209:100608] subsystem: com.apple.FrontBoard, category: Common, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
Mungkin seseorang sudah menemukan konfigurasi untuk menangani ini?
Jawaban:
Coba ini:
1- Dari menu Xcode terbuka: Produk> Skema> Skema Edit
2- Pada Variabel Lingkungan Anda atur
OS_ACTIVITY_MODE
=disable
sumber
NSLog
dari perangkat nyata bagi saya ...Membangun tweet asli dari @rustyshelf, dan jawaban yang diilustrasikan dari iDevzilla, inilah solusi yang membungkam suara dari simulator tanpa menonaktifkan output NSLog dari perangkat.
sumber
disable
dengandefault
.OS_ACTIVITY_MODE tidak bekerja untuk saya (itu mungkin telah karena saya typo'd
disable
sebagaidisabled
, tetapi tidak bahwa lebih alami?!?), Atau setidaknya tidak mencegah banyak pesan. Jadi, inilah kesepakatan nyata dengan variabel lingkungan.https://llvm.org/svn/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
Jadi pengaturan
OS_ACTIVITY_DT_MODE
untuk "TIDAK" dalam variabel lingkungan (metode GUI dijelaskan dalam screenshot Skema di jawaban utama) membuatnya bekerja untuk saya.Sejauh
NSLog
menjadi tempat pembuangan untuk pesan-pesan sistem, kesalahan, dan debugging Anda sendiri: pendekatan logging sebenarnya mungkin diperlukan, misalnya https://github.com/fpillet/NSLogger .ATAU
Minum Kool-Aid yang baru: http://asciiwwdc.com/2016/sessions/721 https://developer.apple.com/videos/play/wwdc2016/721/ Tidak mengherankan bahwa ada beberapa halangan setelah merombak keseluruhan API logging.
TAMBAHAN
Lagi pula,
NSLog
itu hanya omong kosong:https://developer.apple.com/library/content/releasenotes/Miscellaneous/RN-Foundation-OSX10.12/
Masuk akal sekarang untuk mengutip sumber untuk variabel env lainnya. Tempat yang cukup berbeda, kali ini dari internal Apple. Tidak yakin mengapa mereka tumpang tindih. [Komentar salah tentang
NSLog
dihapus][Diedit 22 Sep]: Saya ingin tahu apa yang "dilepaskan" dan "streaming" berbeda dari "debug". Sumber tidak cukup.
https://github.com/macosforge/libdispatch/blob/8e63547ea4e5abbfe55c0c3064181c4950a791d3/src/voucher.c
sumber
os_log
secara informal sebagai Kool Aid baru.Tweet memberikan jawaban untuk saya - https://twitter.com/rustyshelf/status/775505191160328194
Untuk menghentikan Simulator Xcode 8 iOS dari logging seperti orang gila, setel variabel lingkungan OS_ACTIVITY_MODE = nonaktifkan dalam skema debug Anda.
Itu berhasil.
sumber
disable
dengandefault
.Silakan temukan langkah-langkah di bawah ini.
CMD + <
Run
opsi dari sisi kiri.Untuk informasi lebih lanjut, silakan temukan perwakilan GIF di bawah ini.
sumber
disable
dengandefault
.Ini masih belum diperbaiki di Xcode Version 8.0 beta 2 (8S162m) untuk saya dan log tambahan juga muncul di konsol Xcode** EDIT 8/1/16: Ini telah diakui dalam catatan rilis untuk Xcode 8 Beta 4 (8S188o) sebagai masalah yang masih ada .
Agaknya ini akan diselesaikan oleh rilis GM. Sampai saat itu kesabaran dan meskipun tidak ideal tetapi solusi yang saya gunakan ada di bawah ...
Mirip dengan jawaban sebelumnya saya harus:
awali log cetak saya dengan semacam karakter khusus (misalnya * atau ^ atau! dll dll)
Kemudian gunakan kotak pencarian di kanan bawah panel konsol untuk memfilter log konsol saya dengan memasukkan karakter khusus yang saya pilih untuk mendapatkan konsol untuk menampilkan log cetak saya sebagaimana dimaksud
sumber
Solusi saya adalah dengan menggunakan perintah debugger dan / atau Pesan Log di breakpoints.
Dan ubah output konsol dari All Output ke Debugger Output like
sumber
Baik. Sepertinya ada banyak keributan tentang ini, jadi saya akan memberikan kalian semua cara untuk bertahan tanpa menggunakan trik skema itu. Saya akan membahas Simulator iOS secara khusus, tetapi ini juga mungkin perlu diterapkan untuk TV Sim juga yang terletak di dir yang berbeda.
Masalah yang menyebabkan semua ini adalah plist yang terletak di dalam direktori Xcode. Ada proses yang diluncurkan bernama configd_sim ketika Sim mulai yang membaca daftar dan mencetak informasi debug jika daftar menentukan mereka harus dicatat.
Plist ada di sini:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Preferences/Logging/Subsystems
Jika Anda bermain-main dengan beta, perhatikan bahwa direktori akan berbeda.
Anda akan melihat banyak daftar di direktori ini. Sekarang, bangun dan jalankan aplikasi Anda dan amati lognya. Anda mencari konten segera diikuti oleh subsistem: bagian. Ini adalah nama yang segera mengikuti ini yang mewakili daftar masalah yang sesuai.
Dari sana, ubah plist untuk
"Enable" => "Default"
menghapus kunci / nilai debug [Level] yang merupakan kamus yang berisi kunci / nilai ... atau cukup hapus plist. Perhatikan, bahwa Anda harus melakukan root untuk melakukan salah satu dari ini karena mereka berada di aplikasi Xcode.yang
plutil -p
perintah mungkin berguna untuk Anda juga. yaituIni memberiku salah satu daftar bermasalah yang berisi:
{ "DEFAULT-OPTIONS" => { "Level" => { "Enable" => "Default" }}}
Semoga berhasil :]
sumber
2016-09-23 15:09:21.354686 ProductName[8823:191206][] tcp_connection_start 3 starting
Ini terkait dengan masalah yang diketahui dengan penebangan yang ditemukan di Catatan Rilis Beta Xcode 8 (juga meminta seorang insinyur di WWDC).
Saat ini tidak ada solusi yang tersedia, Anda harus menunggu versi Xcode baru.
EDIT 7/5/16: Ini seharusnya diperbaiki pada Xcode 8 Beta 2:
Catatan Rilis Xcode 8 Beta 2
sumber
Ini tidak lagi menjadi masalah dalam xcode 8.1 (diuji Versi 8.1 beta (8T46g)) . Anda dapat menghapus
OS_ACTIVITY_MODE
variabel lingkungan dari skema Anda.https://developer.apple.com/go/?id=xcode-8.1-beta-rn
sumber
[MC] Reading from private effective user settings.
dari proyek dummy kosong baru File> New> Project.Dalam Xcode 10 yang
OS_ACTIVITY_MODE
variabel dengandisable
(ataudefault
) nilai juga mematikanNSLog
tidak peduli apa.Jadi jika Anda ingin menghilangkan kebisingan konsol tetapi bukan dari log Anda sendiri, Anda dapat mencoba yang lama dan
printf("")
bukan NSLog karena tidak terpengaruh olehOS_ACTIVITY_MODE
=disable
.Tetapi lebih baik periksa
os_log
API baru di sini .sumber
Solusi ini telah bekerja untuk saya:
⌘
+/
)Ini akan membuang semua data debug dan juga NSLogs Anda.
Untuk memfilter hanya pernyataan NSLog Anda:
NSLog(@"^ Test Log")
Inilah yang harus Anda dapatkan:
sumber