I am trying to set up Facebook login in my React Native iOS app using FBSDK. The button renders but when clicked crashes the app in the iOS simulator. It doesn't even console log any errors in the remote debugger.
I added the FBSDKCoreKit.framework and FBSDKLoginKit.framework to my project in xcode and followed this guide on how to modify my info.plist
and AppDelegate.m
Is there something wrong with my code for the button?
import React, { Component } from 'react'
import { View } from 'react-native'
import FBSDK from 'react-native-fbsdk'
const { LoginButton } = FBSDK
import styles from '../styles'
export default class Login extends Component {
constructor (props) {
super(props)
this.onLoginFinished = this.onLoginFinished.bind(this)
}
onLoginFinished (error, result) {
if (error) {
console.log(error)
alert("Login failed with error: " + error);
} else if (result.isCancelled) {
alert("Login was cancelled");
} else {
alert("Login was successful with permissions: " + result)
}
}
render () {
return (
<View style={styles.container}>
<LoginButton
publishPermissions={["public_profile"]}
onLoginFinished={this.onLoginFinished}
onLogoutFinished={() => alert("User logged out")}
/>
</View>
)
}
}
Edit
Adding logs from running react-native log-ios
per comment from Andreyco
<Error>: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Read permissions are not permitted to be requested with publish or manage permissions.'
*** First throw call stack:
(
0 CoreFoundation 0x00000001102ce34b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x000000010f1dc21e objc_exception_throw + 48
2 CoreFoundation 0x00000001102ce299 -[NSException raise] + 9
3 FunDates 0x000000010e860c05 -[FBSDKLoginManager logInWithPublishPermissions:fromViewController:handler:] + 228
4 FunDates 0x000000010e85d523 -[FBSDKLoginButton _buttonPressed:] + 1662
5 UIKit 0x000000011284b5b8 -[UIApplication sendAction:to:from:forEvent:] + 83
6 UIKit 0x00000001129d0edd -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x00000001129d11f6 -[UIControl _sendActionsForEvents:withEvent:] + 444
8 UIKit 0x00000001129d00f2 -[UIControl touchesEnded:withEvent:] + 668
9 UIKit 0x00000001128b8ce1 -[UIWindow _sendTouchesForEvent:] + 2747
10 UIKit 0x00000001128ba3cf -[UIWindow sendEvent:] + 4011
11 UIKit 0x000000011286763f -[UIApplication sendEvent:] + 371
12 UIKit 0x000000011305971d __dispatchPreprocessedEventFromEventQueue + 3248
13 UIKit 0x00000001130523c7 __handleEventQueue + 4879
14 CoreFoundation 0x0000000110273311 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
15 CoreFoundation 0x000000011025859c __CFRunLoopDoSources0 + 556
16 CoreFoundation 0x0000000110257a86 __CFRunLoopRun + 918
17 CoreFoundation 0x0000000110257494 CFRunLoopRunSpecific + 420
18 GraphicsServices 0x0000000116095a6f GSEventRunModal + 161
19 UIKit 0x0000000112849964 UIApplicationMain + 159
20 FunDates 0x000000010e69f9bf main + 111
21 libdyld.dylib 0x000000011421668d start + 1
22 ??? 0x0000000000000001 0x0 + 1
)
I needed to change
publishPermissions
toreadPermissions