Próbuję zaimplementować opcję logowania na Facebooka w mojej aplikacji. Postępowałem zgodnie ze wszystkimi instrukcjami na stronie Parse i na stronie dewelopera Facebooka. Dodałem ram, zmodyfikowany plik plist i dodaje odpowiedni kod, ale kiedy uruchomić aplikacji otrzymuję ten wyjątek:Integracja Facebooka z aplikacją Parse.com
2015-07-14 17:50:08.939 ########[35815:2144465] -[ParseManager coreManager]: unrecognized selector sent to instance 0x7f9cdadad720
2015-07-14 17:50:08.953 ########[35815:2144465] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ParseManager coreManager]: unrecognized selector sent to instance 0x7f9cdadad720'
*** First throw call stack:
(
0 CoreFoundation 0x000000010a3cdc65 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000010a066bb7 objc_exception_throw + 45
2 CoreFoundation 0x000000010a3d50ad -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x000000010a32b13c ___forwarding___ + 988
4 CoreFoundation 0x000000010a32acd8 _CF_forwarding_prep_0 + 120
5 ######## 0x0000000105c822f0 +[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:] + 151
6 ######## 0x0000000105954c6c -[SMAppDelegate application:didFinishLaunchingWithOptions:] + 1132
7 UIKit 0x00000001088ef748 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 240
8 UIKit 0x00000001088f0357 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 2540
9 UIKit 0x00000001088f319e -[UIApplication _runWithMainScene:transitionContext:completion:] + 1349
10 UIKit 0x00000001088f2095 -[UIApplication workspaceDidEndTransaction:] + 179
11 FrontBoardServices 0x000000010be2b5e5 __31-[FBSSerialQueue performAsync:]_block_invoke_2 + 21
12 CoreFoundation 0x000000010a30141c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
13 CoreFoundation 0x000000010a2f7165 __CFRunLoopDoBlocks + 341
14 CoreFoundation 0x000000010a2f6f25 __CFRunLoopRun + 2389
15 CoreFoundation 0x000000010a2f6366 CFRunLoopRunSpecific + 470
16 UIKit 0x00000001088f1b02 -[UIApplication _run] + 413
17 UIKit 0x00000001088f48c0 UIApplicationMain + 1282
18 ######## 0x00000001059c4a9f main + 111
19 libdyld.dylib 0x000000010a918145 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Są szkieletowe i biblioteki I rzeczywiście na moim projekcie:
Dziwne jest to, że jeśli utworzę nowy projekt od zera, nie mam żadnych problemów i logowanie działa poprawnie.
Edycja: Nadal próbuję rozwiązać ten problem. Udało mi się uruchomić aplikację bez błędów przez zmianę kodu PFFacebookUtils
inicjalizacji z [PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];
do [PFFacebookUtils initialize];
ale wtedy, gdy próbuję się zalogować poprzez przycisk z kodem [PFFacebookUtils logInInBackgroundWithReadPermissions:nil block:^(PFUser *user, NSError *error) {}
inny wyjątek pojawia Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'You must initialize PFFacebookUtils with a call to +initializeFacebookWithApplicationLaunchOptions'
Dodaję kod używam jak sugeruje:
w moim AppDelegate.m
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <ParseFacebookUtilsV4/PFFacebookUtils.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
// PARSE
[Parse setApplicationId: SMParseApplicationId
clientKey: SMParseClientId];
// FACEBOOK
[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];
[PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];
//*****
// GOOGLE MAP API
[GMSServices provideAPIKey: SMGoolgeMapApiKey];
//*****
return [[FBSDKApplicationDelegate sharedInstance] application:application
didFinishLaunchingWithOptions:launchOptions];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:sourceApplication
annotation:annotation];
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
[FBSDKAppEvents activateApp];
}
byłaś dodany FacebookAppID i FacebookDisplayName jak również typy URL ** ** poprawnie w .plist? –
Tak, zrobiłem. Zrobiłem to więcej niż raz, aby mieć pewność, że wszystko jest w porządku. – Diego
Proponuję opublikować wszystkie istotne kody na logowanie Fb, abyśmy mogli zobaczyć, co jest nieprawidłowe lub brakuje. – SanitLee