如何从iOS上的C ++代码完成对Crashlytics的记录?

时间:2018-04-12 17:09:14

标签: crashlytics google-fabric

Crashlytics documentation for iOS仅提到Swift和Objective-C的自定义日志记录。它没有提到用C ++做这件事。 On Android,我们可以使用Crashlytics native header中的log()set()函数来记录通过JNI调用的C ++代码。有没有相同的iOS方法?还有其他办法吗?

2 个答案:

答案 0 :(得分:1)

来自Crashlytics的Todd在这里!现在,如果没有某种自定义适配器返回Swift或Objective-C,这是不可能的。随着C ++在高级应用程序中变得越来越常见,我希望团队会考虑这一点:)

答案 1 :(得分:0)

是的,我不认为有一个C函数,但我前一段时间遇到了问题而且我使用了一个函数指针。所以就是这样。

在C范围(.cpp和.h文件)

    void yourCFunction(void (*logFunc)(const char*) = NULL);

在ObjectiveC范围内:

CYourCClass *yourCClass = [...];
yourCClass->yourCFunction( [](const char* t){
    CLS_LOG(@"%s", t);
});

用C ++调用日志函数:

if (logFunc!=NULL) {
    std::string debugChr("Some message");
    (*logFunc)(debugChr.c_str());
}

这可以使用宏和东西来改进,但你有这个想法。