Я использую PLCrashReporter в своем проекте iOS, и мне интересно, можно ли использовать код Core Foundation в мой пользовательский обратный вызов при сбое. Вещь, которая удовлетворяет мои потребности, - это CFPreferences. Вот часть кода, который я создаю:
void LMCrashCallback(siginfo_t* info, ucontext_t* uap, void* context) {
CFStringRef networkStatusOnCrash;
networkStatusOnCrash = (CFStringRef)CFPreferencesCopyAppValue(networkStatusKey, kCFPreferencesCurrentApplication);
CFStringRef additionalInfo = CFStringCreateWithFormat(
NULL, NULL, CFSTR( "Additional Crash Properties:[Internet: %@]", networkStatusOnCrash);
CFPreferencesSetAppValue(additionalInfoKey, additionalInfo,
kCFPreferencesCurrentApplication);
CFPreferencesAppSynchronize(kCFPreferencesCurrentApplication);
}
Моя цель - собрать некоторую системную информацию как раз в момент сбоя приложения, например, тип подключения к Интернету.
Я знаю, что не стоит создавать собственный обратный вызов при сбое из-за асинхронно-безопасных функций, но это может помочь.
Также как другой вариант: есть ли способ как-то расширить класс PLCrashReportSystemInfo?