Я заметил, что мои операторы NSLog (и я тоже пробовал это с os_log) не отображаются последовательно в консольном приложении.
Вот код, который запускается при запуске моего приложения.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
NSLog("xyz didFinishLaunchingWithOptions")
FirebaseApp.configure()
NSLog("xyz FirebaseApp.configure() done")
let db = FirestoreDelegate.db()
let now = Date()
NSLog("xyz about to write")
db.collection("atest").document(DateUtils.formatTimestampGMT(now)).setData(["ts": now, "note":"delegate startup"]) {
err in
if let err = err {
NSLog ("xyz error ats \(err)")
return
}
NSLog("xyz wrote to ats \(DateUtils.formatTimestampGMT(now))")
}
NSLog("xyz after write")
... extraneous code removed
}
Когда я запускаю, иногда я вижу "xyz didFinishLaunchingWithOptions" и "write to ats", но ни один из других операторов журнала. Иногда я вижу их всех, но это довольно противоречиво. Они как-то фильтруются или оптимизируются?
Я не отлаживаю через xcode, я просто запускаю приложение на своем телефоне и просматриваю журналы через консольное приложение на моем компьютере.