Невозможно написать в ~/Library/Application Support после упаковки приложения Qt/C++ в MacOS

Я пишу свои журналы приложений в ~/Library/Application Support (QStandardPaths::AppDataLocation[0]) и все идет хорошо, если я запускаю свое приложение из Qt Creator. После упаковки приложения с помощью pkgbuild и productbuild, подписания приложения с моим приложением Developer ID (для кодового знака) и Installer ID разработчика (для productbuild), при установке его на моем компьютере с правами администратора файл журнала не создается (дерево каталогов). это генерируется). Я использую std::ofstream для записи в файл сообщения, которое приходит в QByteArray. Также я использую qInstallMessageHandler.

Любая идея, как сделать это работает? Нужно ли мне что-то добавить в мой Distribution.xml в productbuild? Какие-нибудь еще права, которые мне нужно добавить на этапе упаковки?

Это обработчик, который я использую

void tracesOutputHandler(QtMsgType type, const QMessageLogContext& context, const QString & msg)
{
    std::cout << "This is called" << std::endl;
    QString txt;
    switch (type) {
    case QtDebugMsg:
        txt = QString("Debug: %1").arg(msg);
        break;
    case QtWarningMsg:
        txt = QString("Warning: %1").arg(msg);
        break;
    case QtCriticalMsg:
        txt = QString("Critical: %1").arg(msg);
        break;
    case QtFatalMsg:
        txt = QString("Fatal: %1").arg(msg);
        break;
    }

    // log_name here is well-formed.
    QFile outFile(log_name);
    if (outFile.open(QIODevice::WriteOnly | QIODevice::Append)) {
        QTextStream ts(&outFile);
        ts << txt << endl;
    } else {
        qDebug() << Q_FUNC_INFO << "Cannot open in log file";
    }
}

Это вызванное сообщение появляется в исполнении QtCreator.

Кроме того, просто добавьте, что приложение не находится в песочнице.

РЕДАКТИРОВАТЬ: после многих испытаний, я думаю, что MessageHandler tracesOutputHandler не вызывается, когда приложение начинает делать двойной щелчок на значке приложения.

0 ответов

Другие вопросы по тегам