我使用Facebook v3.14。我随机找到了[FBAppEvents activateApp]崩溃的方法。因为[FBAppEvents activateApp]应该在- (void)applicationDidBecomeActive:(UIApplication *)application中写入
我们的applicationDidBecomeActive应该是每天约1亿次,大约10天,[FBAppEvents activateApp]崩溃大约1K次。
坠机日志在这里,任何人都能帮我,塞克斯。
type: signal
subtype: SIGSEGV
shavalue: 1ebce91b2b00be8084bb4cae3b666f4c
content:
• Crashed thread 0x00000000
• 0 Weibo 0x00718df5 -[WBRecordCrashLog p_updateBacktraceToDictionary:fromSigalCode:] + 408
• 1 Weibo 0x00718757 signalHandler + 298
• 2 libsystem_platform.dylib 0x38317f8b _sigtramp + 34
• 3 CoreFoundation 0x2d4e1105 + 76
• 4 UIKit 0x3016d039 + 236
• 5 Weibo 0x00a0d349 +[FBUtility attributionID] + 44
• 6 Weibo 0x00a282e5 +[FBSettings publishInstall:withHandler:isAutoPublish:] + 456
• 7 Weibo 0x00a28119 +[FBSettings publishInstall:withHandler:] + 44
• 8 Weibo 0x00a3949f +[FBAppEvents activateApp] + 34
• 9 Weibo 0x0014b60d -[TweetterAppDelegate applicationDidBecomeActive:] + 40
• 10 UIKit 0x2fe3f6bb + 374
• 11 UIKit 0x2fe2a6e1 + 1088
• 12 UIKit 0x2fdc66e9 + 3540
• 13 UIKit 0x2fdc5851 + 72
• 14 UIKit 0x2fe29ca9 + 616
• 15 GraphicsServices 0x323fbaed + 608
• 16 GraphicsServices 0x323fb6d7 + 34
• 17 CoreFoundation 0x2d56ea67 + 34
• 18 CoreFoundation 0x2d56ea03 + 346
• 19 CoreFoundation 0x2d56d1d7 + 1398
• 20 CoreFoundation 0x2d4d7ebf CFRunLoopRunSpecific + 522
• 21 CoreFoundation 0x2d4d7ca3 CFRunLoopRunInMode + 106
• 22 UIKit 0x2fe28ed1 + 760
• 23 UIKit 0x2fe2414d UIApplicationMain + 1136
• 24 Weibo 0x001723db main + 58
• 25 Weibo 0x00147c04 start + 40我已经下载了Facebook的源代码,[FBUtility attributionID]在这里:
+ (NSString *)attributionID {
return [[UIPasteboard pasteboardWithName:@"fb_app_attribution" create:NO] string];
}我找到了一些医生,没有医生告诉我pasteboardWithName或[UIPasteboard string]会导致崩溃
发布于 2014-11-21 10:51:07
我已经防御了崩溃使用方法Swizzling与我的自定义方法交换方法(+[FBUtility attributionID])。
代码如下:
在Appdelegate.m中
Method leftMethod = class_getClassMethod(NSClassFromString(@"FBUtility"), NSSelectorFromString(@"attributionID"));
Method rightMethod = class_getClassMethod(NSClassFromString(@"MyHackFBUtility"), NSSelectorFromString(@"attributionID"));
method_exchangeImplementations(leftMethod, rightMethod);在MyHackFBUtility.m中
+ (NSString *)attributionID {
return nil;
}而且持续了几个月
https://stackoverflow.com/questions/25263781
复制相似问题