Сообщения os_log не отображаются для заархивированного приложения катализатора - PullRequest
0 голосов
/ 20 апреля 2020

Я использую Wrapper в личном пакете Swift для использования os_log для печати сообщений журнала на консоль:

import Foundation
import os

public class ATLogger {

    public static let shared = ATLogger()

    public func logToConsole(file: String = #file, function: String = #function, line: Int = #line, message: String, type: OSLogType) {
        let osLog: OSLog
        if let subsystem = Bundle.main.bundleIdentifier {
            osLog = OSLog(subsystem: subsystem, category: "Appfrosch")
        } else {
            osLog = .default
        }
        let file = String(file.split(separator: "/").last ?? "")

        os_log("*** %{public}s/%{public}s, line %d -- %s", log: osLog, type: type, file, function, line, message)
    }
}

Затем я вызываю его там, где считаю нужным, например, в моем SceneDelegate для входа запуск приложения выглядит так:

ATLogger.shared.logToConsole(message: "Application started", type: .default)

Это прекрасно работает при запуске версии катализатора из Xcode на macOS для всех уровней журнала - т.е. все сообщения видны на консоли (у меня есть Debug и Информация активирована):

enter image description here

Моя проблема в том, что когда я делаю артефакт указанного приложения путем архивирования, а затем копирую его в свою систему, запускается приложение не показывает эти же сообщения на консоли.

sudo log stream --level default | grep Appfrosch дает тот же результат: приложения успешно регистрируются при запуске из Xcode, но не при запуске как артефакт.

Чего мне не хватает?

...