我最近发现一个更新需要集成 Firebase 以进行崩溃报告分析,以及之前实现的 Facebook 登录。我已经用 FBSDKLoginButton 实现了 FB 登录,效果非常好。
但是当我取消[FIRApp configure]评论appdelegate它停止处理application:openURL:options:时,我 100% 确定 FB 登录实现,正如我所说,如果我评论它工作正常 [FIRApp configure]。
这是供参考的代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
BOOL b = [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
[FIRApp configure]; //If I comment this, works fine with FB callback which handles at application:openURL:options:
return b;
}
-(BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:app
openURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];
return handled;
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
[FBSDKAppEvents activateApp];
}
一旦我们取消注释 Firebase 配置方法, FB Call back 将更改为以下 backtrace :
-[ViewController loginButton:didCompleteWithResult:error:]
-[FBSDKLoginButton _buttonPressed:]_block_invoke
-[FBSDKLoginManager 调用处理程序:错误:]
-[FBSDKLoginManager(Native) 处理ImplicitCancelOfLogIn]
-[FBSDKApplicationDelegate applicationDidBecomeActive:]
更新
问题在于[FIRApp configure],所以请在情况相同的情况下提出解决方案。