我的应用程序可以在模拟器中正确编译和运行,但在我的设备上运行时却不行。我正在使用最新的 Facebook SDK 版本。我正在使用 XCode 3.2.6、LLVM 编译器 1.7 并在运行 iOS 4.3.5 的设备 iPhone 4 上进行测试。我收到以下错误:
Program received signal: “SIGSYS”.
warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.3.5 (8L1)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib (file not found).
Xcode could not locate source file: FBSettings.m (line: 65)
(gdb) bt
#0 0x00080324 in __33+[FBSettings autoPublishInstall:]_block_invoke_0 (.block_descriptor=0x4e) at /Users/jacl/src/ship/ios-sdk/src/FBSettings.m:65
#1 0x336226aa in dispatch_once$VARIANT$up ()
#2 0x0008031c in +[FBSettings autoPublishInstall:] (self=0x4e, _cmd=0x2fdfdc48, appID=<value temporarily unavailable, due to optimizations>) at once.h:68
#3 0x00077d48 in -[FBSession initWithAppID:permissions:urlSchemeSuffix:tokenCacheStrategy:] (self=<value temporarily unavailable, due to optimizations>, _cmd=0x2fdfdc48, appID=<value temporarily unavailable, due to optimizations>, permissions=<value temporarily unavailable, due to optimizations>, urlSchemeSuffix=<value temporarily unavailable, due to optimizations>, tokenCachingStrategy=<value temporarily unavailable, due to optimizations>) at /Users/jacl/src/ship/ios-sdk/src/FBSession.m:244
#4 0x00077950 in -[FBSession init] (self=<value temporarily unavailable, due to optimizations>, _cmd=<value temporarily unavailable, due to optimizations>) at /Users/jacl/src/ship/ios-sdk/src/FBSession.m:153
#5 0x0007877e in +[FBSession activeSession] (self=<value temporarily unavailable, due to optimizations>, _cmd=<value temporarily unavailable, due to optimizations>) at /Users/jacl/src/ship/ios-sdk/src/FBSession.m:446
#6 0x0002d704 in -[FacebookClient initWithContext:andDocumentsPath:] (self=0x2ae5a0, _cmd=0x9259c, context=0x2bb1b0, path=0x28b0b0) at /Users/username/projects/myapp/myapp-ios/Classes/FacebookClient.m:84
#7 0x00003586 in -[MyAppDelegate application:didFinishLaunchingWithOptions:] (self=0x28be00, _cmd=0x3587dbfe, application=0x263f40, launchOptions=0x0) at /Users/username/projects/myapp/myapp-ios/Classes/MyAppDelegate.m:234
#8 0x355c1820 in -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] ()
#9 0x355bbb64 in -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] ()
#10 0x355907d6 in -[UIApplication handleEvent:withNewEvent:] ()
#11 0x35590214 in -[UIApplication sendEvent:] ()
#12 0x3558fc52 in _UIApplicationHandleEvent ()
#13 0x35ecae76 in PurpleEventCallback ()
#14 0x3677da96 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#15 0x3677f83e in __CFRunLoopDoSource1 ()
#16 0x3678060c in __CFRunLoopRun ()
#17 0x36710ec2 in CFRunLoopRunSpecific ()
#18 0x36710dca in CFRunLoopRunInMode ()
#19 0x355bad48 in -[UIApplication _run] ()
#20 0x355b8806 in UIApplicationMain ()
#21 0x00002858 in main (argc=1, argv=0x2fdff488) at /Users/username/projects/myapp/myapp-ios/main.m:14
引用的代码(FBSettings.m 第 65 行)似乎不是特别成问题:
+ (void)autoPublishInstall:(NSString *)appID {
if ([FBSettings shouldAutoPublishInstall]) {
dispatch_once(&g_publishInstallOnceToken, ^{
// dispatch_once is great, but not re-entrant. Inside publishInstall we use FBRequest, which will
// cause this function to get invoked a second time. By scheduling the work, we can sidestep the problem.
[[FBSettings class] performSelector:@selector(publishInstall:) withObject:appID afterDelay:FBPublishDelay];
});
}
}