main.m 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. //
  2. // main.m
  3. // Temperature
  4. //
  5. // Created by RD on 2022/10/21.
  6. //
  7. #import <UIKit/UIKit.h>
  8. #import "AppDelegate.h"
  9. #import <execinfo.h>
  10. void handleException(NSException *exception) {
  11. NSArray *stackArray = [exception callStackSymbols];
  12. NSMutableString *reason = [NSMutableString stringWithFormat: @"Crash: %@", [exception reason]];
  13. NSMutableString *stackTrace = [NSMutableString string];
  14. for (NSString *trace in stackArray) {
  15. [stackTrace appendFormat:@"%@\n", trace];
  16. }
  17. // 这里可以将信息写入日志文件或发送到服务器
  18. NSLog(@"%@\n%@", reason, stackTrace);
  19. [[NSUserDefaults standardUserDefaults] setObject:reason forKey:@"exceptionReason"];
  20. [[NSUserDefaults standardUserDefaults] setObject:stackTrace forKey:@"exceptionStackTrace"];
  21. }
  22. int main(int argc, char * argv[]) {
  23. NSString * appDelegateClassName;
  24. @autoreleasepool {
  25. // Setup code that might create autoreleased objects goes here.
  26. appDelegateClassName = NSStringFromClass([AppDelegate class]);
  27. }
  28. NSSetUncaughtExceptionHandler(&handleException);
  29. return UIApplicationMain(argc, argv, nil, appDelegateClassName);
  30. }