繁体   English   中英

链接 Discord C SDK 并且不显示任何日志时应用程序崩溃

[英]App crashing when linking Discord C SDK and not displaying any logs

我正在开发一个使用 Discord SDK(用 C 语言编写)的 macOS 应用程序。 After I import it into another C file that encapsulates all of the logic to initialise it, and then link this C file to my Swift project, the app crashes upon launch, and no errors or crash information is displayed on the output. 我曾尝试将相同的 C 文件导入用纯 C 编写的命令行应用程序,并且效果很好。 我想知道是否有任何方法可以检查从 C 代码输出的错误日志,以及在哪里可以找到它。

这是我正在调用的 C function 的代码,崩溃发生在 DiscordCreate() 上:

void initializeDiscord() {
    struct Application app;
    memset(&app, 0, sizeof(app));

    struct IDiscordActivityEvents activities_events;
    memset(&activities_events, 0, sizeof(activities_events));

    struct DiscordCreateParams params;
    DiscordCreateParamsSetDefault(&params);
    params.client_id = CLIENT_ID;
    params.flags = DiscordCreateFlags_Default;
    params.event_data = &app;
    params.activity_events = &activities_events;
    int ver = DISCORD_VERSION;

    DiscordCreate(ver, &params, &app.core);

    app.activities = app.core->get_activity_manager(app.core);
    app.application = app.core->get_application_manager(app.core);
    app.activity_manager = app.core->get_activity_manager(app.core);

    struct DiscordActivity activity;
    memset(&activity, 0, sizeof(activity));
    strcpy(activity.details, "Test");
    strcpy(activity.state, "Test");
    strcpy(activity.assets.large_text, "test");
    strcpy(activity.assets.large_image, "test");
    activity.timestamps.end = (unsigned)time(NULL) + 120;

    app.activity_manager->update_activity(app.activity_manager, &activity, callbackData, callback);

    for (;;) {
        app.core->run_callbacks(app.core);
        usleep(16 * 1000);
    }
}

事实证明,禁用应用沙箱解决了这个问题。 这可能是 Discord SDK 试图做沙盒不允许的事情的问题。 仍然对 Xcode 没有显示任何警告、错误或任何 output 表示这是问题所在感到沮丧,但至少它现在正在工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM