升级SDK后,使用Facebook登录在iOS 11上无响应

时间:2018-08-13 09:09:09

标签: ios objective-c facebook facebook-ios-sdk facebook-sdk-4.x

我在生产中使用Facebook SDK 4.24.0版本的应用程序。在生产应用程序中使用Facebook登录后,一切正常。

我已经将Facebook SDK版本更新为4.35.0。此版本在iOS 9和10中可以正常工作。但是在iOS 11中,要求{AppName}之类的权限才能使用“ facebook.com”登录。单击继续后,没有任何显示。没有WebView,没有应用切换。

这就是我处理登录的方式:

 FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithReadPermissions:PERMISSIONS fromViewController:self.fromViewController handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {

    if (error) {
        // Process error
        //   [self sessionStateChanged:session state:state error:error];
        [self handleFacebookError:error andResult:result];



    } else if (result.isCancelled) {
        // Handle cancellations

        [self handleFacebookSessionClosed];

        /**
         Letting the delegates know that the session was closed.
         */
        [self informDelegateWithLoginStatus:TRUAuthenticationStatus_Error
                                    message:nil];
        [self informDelegateWithAccountMergeStatus:TRUAuthenticationStatus_Error
                                           message:nil];

    } else {
        // If you ask for multiple permissions at once, you
        // should check if specific permissions missing
        [self handleFacebookSessionOpen];


    }

}];

如果我将登录行为设置为FBSDKLoginBehaviorWeb,它会显示一个弹出窗口,如下所示,我是不需要的。 Login With Facebook

我在info.plist文件中具有以下属性:

<array>
    <string>fbapi</string>
    <string>fbapiXXX</string>
    <string>fbauth</string>
    <string>fbauth2</string>
    <string>fb-messenger-apiXXX</string>
    <string>fb-messenger-share-api</string>
    <string>fbshareextension</string>
    <string>fb-messenger-api</string>
    <string>fb</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>facebook.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>fbcdn.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>akamaihd.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>

我在应用程序委托中处理openURL:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                          openURL:url
                                                sourceApplication:sourceApplication
                                                       annotation:annotation
            ];}

当我降级到Facebook SDK 4.24.0时,它可以正常工作。到目前为止我已经尝试过的;

我尝试使FBSDKLoginManager * login变量成为全局变量。它没有用。 我曾尝试激活KeyChain。没用。

0 个答案:

没有答案