iOS 的 FBSDK:"unrecognized selector sent to instance"
FBSDK for iOS: "unrecognized selector sent to instance"
集成 Facebook SDK 后,我在启动应用程序后立即收到以下错误:
"unrecognized selector sent to instance"
我做了什么:
我使用 XCode 6 为 iOS 8.2 设置了一个简单的视图控制器应用程序,并将 Facebook iOS SDK 与 Cocoapods 集成。
我完成了 "Getting Started" 部分并将必要的代码放入 AppDelegate 并更改了 .plist-File。
当 运行 应用程序时,它立即停止并出现 "unrecognized selector"-错误。
我还尝试了 Facebook-SDK 中的示例应用程序 "Scrumptious",它运行良好。我将 Scrumptions 中的代码构建到我的应用程序中,并遇到了与之前相同的错误。下面我将 post 调用堆栈。
Facebook 建议将 -ObjC 切换到链接器标志以解决这些错误。但是这个 Flag 已经设置好了(我认为 cocoapods 已经设置好了)。
我能做什么?什么东西少了?
这是调用堆栈:
2015-04-09 15:58:40.949 myapp[65629:2910713] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x7fbd6b741140'
*** First throw call stack:
(
0 CoreFoundation 0x0000000103205a75 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000102e9ebb7 objc_exception_throw + 45
2 CoreFoundation 0x000000010320cd1d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x00000001031649dc ___forwarding___ + 988
4 CoreFoundation 0x0000000103164578 _CF_forwarding_prep_0 + 120
5 myapp 0x0000000100993c66 __107+[FBSDKAppEventsUtility activityParametersDictionaryForEvent:implicitEventsOnly:shouldAccessAdvertisingID:]_block_invoke + 470
6 libdispatch.dylib 0x0000000104257614 _dispatch_client_callout + 8
7 libdispatch.dylib 0x0000000104243881 dispatch_once_f + 565
8 myapp 0x000000010099388a +[FBSDKAppEventsUtility activityParametersDictionaryForEvent:implicitEventsOnly:shouldAccessAdvertisingID:] + 1114
9 myapp 0x000000010099be4c +[FBSDKAppLinkUtility fetchDeferredAppLink:] + 780
10 myapp 0x0000000100974e6e -[AppDelegate applicationDidBecomeActive:] + 142
11 UIKit 0x0000000101bd3f96 -[UIApplication _stopDeactivatingForReason:] + 313
12 UIKit 0x0000000101be8ea2 -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:] + 2648
13 FrontBoardServices 0x0000000105b33243 __31-[FBSSerialQueue performAsync:]_block_invoke + 16
14 CoreFoundation 0x000000010313ac7c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
15 CoreFoundation 0x00000001031309c5 __CFRunLoopDoBlocks + 341
16 CoreFoundation 0x0000000103130785 __CFRunLoopRun + 2389
17 CoreFoundation 0x000000010312fbc6 CFRunLoopRunSpecific + 470
18 GraphicsServices 0x0000000103b72a58 GSEventRunModal + 161
19 UIKit 0x0000000101bd9580 UIApplicationMain + 1282
20 myapp 0x00000001009753b3 main + 115
21 libdyld.dylib 0x000000010428c145 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
看看你的 plist 文件。它必须包含 FacebookAppId、DisplayName 和 URL 方案。如果只有一个丢失,你会得到这样的错误。
这是我的应用程序之一,它可以与 Facebook 一起正常工作-API:
集成 Facebook SDK 后,我在启动应用程序后立即收到以下错误: "unrecognized selector sent to instance"
我做了什么:
我使用 XCode 6 为 iOS 8.2 设置了一个简单的视图控制器应用程序,并将 Facebook iOS SDK 与 Cocoapods 集成。
我完成了 "Getting Started" 部分并将必要的代码放入 AppDelegate 并更改了 .plist-File。 当 运行 应用程序时,它立即停止并出现 "unrecognized selector"-错误。
我还尝试了 Facebook-SDK 中的示例应用程序 "Scrumptious",它运行良好。我将 Scrumptions 中的代码构建到我的应用程序中,并遇到了与之前相同的错误。下面我将 post 调用堆栈。
Facebook 建议将 -ObjC 切换到链接器标志以解决这些错误。但是这个 Flag 已经设置好了(我认为 cocoapods 已经设置好了)。
我能做什么?什么东西少了?
这是调用堆栈:
2015-04-09 15:58:40.949 myapp[65629:2910713] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x7fbd6b741140'
*** First throw call stack:
(
0 CoreFoundation 0x0000000103205a75 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000102e9ebb7 objc_exception_throw + 45
2 CoreFoundation 0x000000010320cd1d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x00000001031649dc ___forwarding___ + 988
4 CoreFoundation 0x0000000103164578 _CF_forwarding_prep_0 + 120
5 myapp 0x0000000100993c66 __107+[FBSDKAppEventsUtility activityParametersDictionaryForEvent:implicitEventsOnly:shouldAccessAdvertisingID:]_block_invoke + 470
6 libdispatch.dylib 0x0000000104257614 _dispatch_client_callout + 8
7 libdispatch.dylib 0x0000000104243881 dispatch_once_f + 565
8 myapp 0x000000010099388a +[FBSDKAppEventsUtility activityParametersDictionaryForEvent:implicitEventsOnly:shouldAccessAdvertisingID:] + 1114
9 myapp 0x000000010099be4c +[FBSDKAppLinkUtility fetchDeferredAppLink:] + 780
10 myapp 0x0000000100974e6e -[AppDelegate applicationDidBecomeActive:] + 142
11 UIKit 0x0000000101bd3f96 -[UIApplication _stopDeactivatingForReason:] + 313
12 UIKit 0x0000000101be8ea2 -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:] + 2648
13 FrontBoardServices 0x0000000105b33243 __31-[FBSSerialQueue performAsync:]_block_invoke + 16
14 CoreFoundation 0x000000010313ac7c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
15 CoreFoundation 0x00000001031309c5 __CFRunLoopDoBlocks + 341
16 CoreFoundation 0x0000000103130785 __CFRunLoopRun + 2389
17 CoreFoundation 0x000000010312fbc6 CFRunLoopRunSpecific + 470
18 GraphicsServices 0x0000000103b72a58 GSEventRunModal + 161
19 UIKit 0x0000000101bd9580 UIApplicationMain + 1282
20 myapp 0x00000001009753b3 main + 115
21 libdyld.dylib 0x000000010428c145 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
看看你的 plist 文件。它必须包含 FacebookAppId、DisplayName 和 URL 方案。如果只有一个丢失,你会得到这样的错误。
这是我的应用程序之一,它可以与 Facebook 一起正常工作-API: