Crashlytics documentation for iOS仅提到Swift和Objective-C的自定义日志记录。它没有提到用C ++做这件事。 On Android,我们可以使用Crashlytics native header中的log()
和set()
函数来记录通过JNI调用的C ++代码。有没有相同的iOS方法?还有其他办法吗?
答案 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());
}
这可以使用宏和东西来改进,但你有这个想法。