Firebaseui-ios: No visible @interface for 'FBSDKLoginManager' declares the selector 'logInWithReadPermissions'

Created on 26 May 2019  路  14Comments  路  Source: firebase/FirebaseUI-iOS

I just updated my pods and ran into a compiler error in FirebaseUI/Facebook. The error is:

 No visible @interface for 'FBSDKLoginManager' declares the selector 'logInWithReadPermissions:fromViewController:handler:'

It occurs at https://github.com/firebase/FirebaseUI-iOS/blob/master/FacebookAuth/FirebaseFacebookAuthUI/FUIFacebookAuth.m#L139.

Has FirebaseUI 7.0.0 been officially released? As I was researching the issue, I found the latest FirebaseUI release is 6.2.1, but there's a v7.0.0-prerelease branch and the Podspec has been updated to 7.0.0 (https://github.com/firebase/FirebaseUI-iOS/blob/master/FirebaseUI.podspec#L3).

Here's the relevant output from pod install:

Using FBSDKCoreKit (5.0.1)
Using FBSDKLoginKit (5.0.1)
Using Firebase (6.1.0)
Using FirebaseABTesting (3.0.0)
Using FirebaseAnalytics (6.0.1)
Using FirebaseAnalyticsInterop (1.2.0)
Using FirebaseAuth (6.1.0)
Using FirebaseAuthInterop (1.0.0)
Using FirebaseCore (6.0.1)
Using FirebaseDatabase (6.0.0)
Using FirebaseInstanceID (4.1.0)
Using FirebaseMessaging (4.0.1)
Using FirebaseRemoteConfig (4.0.0)
Using FirebaseStorage (3.2.1)
Using FirebaseUI (7.0.0)
Using GoogleSignIn (4.4.0)

I'm referencing pods without a version specifier. Here's the relevant portion of my Podfile:

pod 'Firebase/Analytics'
pod 'Firebase/Auth'
pod 'Firebase/Core'
pod 'Firebase/Database'
pod 'Firebase/Messaging'
pod 'Firebase/RemoteConfig'
pod 'Firebase/Storage'
pod 'FirebaseUI/Auth'
pod 'FirebaseUI/Email'
pod 'FirebaseUI/Facebook'
pod 'FirebaseUI/Google'

Most helpful comment

Yeah, this is causing a major issue over here. Can't build anymore. All that was done was upgrading to the latest version. We are using Firebase-UI

All 14 comments

Looks like the issue has already been resolved by @renkelvin in https://github.com/firebase/FirebaseUI-iOS/pull/683 and it's released in 6.2.1, but it hasn't made it to 7.0.0 yet.

I'd rather not pin FirebaseUI to ~6.0 because FirebaseUI/Auth pins Firebase to 5.0 and I'm on 6.0 now.

[!] CocoaPods could not find compatible versions for pod "Firebase/Auth":
  In snapshot (Podfile.lock):
    Firebase/Auth (= 6.1.0, ~> 6.0)

  In Podfile:
    Firebase/Auth

    FirebaseUI/Email (~> 6.0) was resolved to 6.0.0, which depends on
      FirebaseUI/Auth (= 6.0.0) was resolved to 6.0.0, which depends on
        Firebase/Auth (~> 5.0)

@jonathanfoster did you manage to find a solution?
I am experiencing the same error at https://github.com/firebase/FirebaseUI-iOS/blob/master/FacebookAuth/FirebaseFacebookAuthUI/FUIFacebookAuth.m#L139

Yeah, this is causing a major issue over here. Can't build anymore. All that was done was upgrading to the latest version. We are using Firebase-UI

@adamteale I ended up temporarily removing FirebaseUI/Facebook until this issue is resolved. Not sure if this is an option for your situation. Rolling back to v6.2.1 is probably the best way to go since v7.0 is prerelease. The fix looks super simple though so hopefully https://github.com/firebase/FirebaseUI-iOS/pull/686 can be merged quickly.

Kudos to @morganchen12 for the fast turnaround time 馃挭. He merged https://github.com/firebase/FirebaseUI-iOS/pull/686 into v7.0.0-prerelease so we should be good. I can't verify myself right now, but if someone else can then I can close this issue.

I rolled back to the v6.2.1, and for some reason it seems to be more problematic. After rolling back from 7.0.0 to 6.2.1, I got 10+ FBSDKLoginKit errors including:

/Users/legolas/Developer/BeyondFluencyApp/Pods/FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginManagerLogger.m:67:53: No known class method for selector 'objectForJSONString:error:'

/Users/legolas/Developer/BeyondFluencyApp/Pods/FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginManagerLogger.m:158:56: No known class method for selector 'JSONStringForObject:error:invalidObjectHandler:'

@jonathanfoster I just tested the v7.0.0 and sadly it still throws this error:
/Users/legolas/Developer/BeyondFluencyApp/Pods/FirebaseUI/FacebookAuth/FirebaseFacebookAuthUI/FUIFacebookAuth.m:139:18: No visible @interface for 'FBSDKLoginManager' declares the selector 'logInWithReadPermissions:fromViewController:handler:'

@jonathanfoster I have just done a fresh install of FirebaseUI and a clean build and it compiles with no errors so looks like it is working

I'm confused. I created a new project with podfile:

pod 'Firebase/Core'
pod 'FirebaseUI'

And the errors remains: No visible @interface for 'FBSDKLoginManager' declares the selector 'logInWithReadPermissions:fromViewController:handler:'

Here are the dependencies:
Using BoringSSL-GRPC (0.0.3)
Using FBSDKCoreKit (5.0.1)
Using FBSDKLoginKit (5.0.1)
Using Firebase (6.1.0)
Using FirebaseAnalytics (6.0.1)
Using FirebaseAuth (6.1.0)
Using FirebaseAuthInterop (1.0.0)
Using FirebaseCore (6.0.1)
Using FirebaseDatabase (6.0.0)
Using FirebaseFirestore (1.3.1)
Using FirebaseInstanceID (4.1.0)
Using FirebaseStorage (3.2.1)
Using FirebaseUI (7.0.0)
Using GTMSessionFetcher (1.2.2)
Using GoogleAppMeasurement (6.0.1)
Using GoogleSignIn (4.4.0)
Using GoogleToolboxForMac (2.2.1)
Using GoogleUtilities (6.2.0)
Using Protobuf (3.8.0)
Using SDWebImage (4.4.6)
Using gRPC-C++ (0.0.8)
Using gRPC-Core (1.19.0)
Using leveldb-library (1.20)
Using nanopb (0.3.901)

Same here. new project with podfile:

pod 'Firebase/Core'
pod 'FirebaseUI'

ERROR: No visible @interface for 'FBSDKLoginManager' declares the selector 'logInWithReadPermissions:fromViewController:handler:'

Using BoringSSL-GRPC (0.0.3)
Using FBSDKCoreKit (5.0.1)
Using FBSDKLoginKit (5.0.1)
Using Firebase (6.1.0)
Using FirebaseAnalytics (6.0.1)
Using FirebaseAuth (6.1.0)
Using FirebaseAuthInterop (1.0.0)
Using FirebaseCore (6.0.1)
Using FirebaseDatabase (6.0.0)
Using FirebaseFirestore (1.3.1)
Using FirebaseInstanceID (4.1.0)
Using FirebaseStorage (3.2.1)
Using FirebaseUI (7.0.0)
Using GTMSessionFetcher (1.2.2)
Using GoogleAppMeasurement (6.0.1)
Using GoogleSignIn (4.4.0)
Using GoogleToolboxForMac (2.2.1)
Using GoogleUtilities (6.2.0)
Using Protobuf (3.8.0)
Using SDWebImage (4.4.6)
Using gRPC-C++ (0.0.8)
Using gRPC-Core (1.19.0)
Using leveldb-library (1.20)
Using nanopb (0.3.901)

@legolasW, @mkonapelsky: I ran into the same issue and I was able to get latest by cleaning the pod cache and deleting the existing Pods directory.

pod cache clean --all
rm -rf Pods/

@legolasW, @mkonapelsky: I ran into the same issue and I was able to get latest by cleaning the pod cache and deleting the existing Pods directory.

pod cache clean --all
rm -rf Pods/

I could have sworn I ran these ... anyway, that worked.

same here... what was the fix?

@jimijon The fix was merged into 7.0.0, but because the version number wasn't bumped you have to clean the pod cache and delete your Pods directory.

pod cache clean --all
rm -rf Pods/

8.0.1 was released to address this issue, but it introduced a new Facebook login bug so you'll want to pin FirebaseUI to 7.0.0 until the new issue is resolved (https://github.com/firebase/FirebaseUI-iOS/issues/695).

pod 'FirebaseUI', '~> 7.0'
Was this page helpful?
0 / 5 - 0 ratings

Related issues

morganchen12 picture morganchen12  路  7Comments

Tayphoon picture Tayphoon  路  6Comments

Ruberik picture Ruberik  路  8Comments

crrobinson14 picture crrobinson14  路  9Comments

Vortec4800 picture Vortec4800  路  5Comments