2016-12-30 22 views
2

我正在嘗試使用FBSDK在我的React Native iOS應用中設置Facebook登錄。該按鈕呈現,但點擊時會導致iOS模擬器中的應用程序崩潰。它甚至不會在遠程調試器中記錄任何錯誤。React Native Facebook登錄按鈕在iOS模擬器中崩潰應用

我加入了FBSDKCoreKit.framework和FBSDKLoginKit.framework到我的項目在Xcode和隨後關於如何修改this guideinfo.plistAppDelegate.m

是不是有什麼毛病我的按鈕的代碼?

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> 
    ) 
    } 
} 

編輯

從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 
) 
+0

運行'react-native log-ios'來從設備尾部記錄日誌。發佈日誌然後 – Andreyco

+0

@Andreyco日誌添加 – plmok61

回答

7

運行react-native log-ios根據註釋添加日誌,我需要改變publishPermissionsreadPermissions

<LoginButton 
    readPermissions={["public_profile email"]} 
    onLoginFinished={this.loginFinished.bind(this)} 
    onLogoutFinished={() => alert("User logged out")} 
/> 
+0

它爲我thx工作。 –

+0

@ plmok61我遇到了同樣的錯誤,但將'public'更改爲'read'對我無效。自從這篇文章後你可能會遇到任何其他想法? – Turnipdabeets

+0

謝謝! FB文檔沒有打擾這個小細節...... – jfeferman

相關問題