web-dev-qa-db-ja.com

FBSDKログインエラーコード:Objective-Cの308

私は取得し続けます

「エラーDomain = com.facebook.sdk.login Code = 308」操作を完了できませんでした。 (com.facebook.sdk.loginエラー308。) ""

デバイスからFacebookでログインしようとすると。

私のコードはシミュレータで動作しますが、実際のデバイスでは動作しません。誰も以前にこのエラーコードに遭遇しましたか?リクエストに応じてコードを共有させていただきます。

57

少なくとも私にとっての解決策の1つは、Xcodeデバッガーを介してデバイス上で実行しないことです。デバッガー外のデバイスでアプリを実行すると、Facebookのログインは正常に機能します。デバッガーを介してsimでアプリを実行すると、Facebookのログインは正常に機能します。

Xcodeデバッガーを介してデバイスでアプリを実行する場合にのみ、com.facebook.sdk.loginエラー308を毎回取得します。

44
user3633673

以下のソリューションは、iOS9 + Xcode 8上で実行され、Swift3.0で動作します

手順は

  1. Facebook起動のセットアップ

FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)

  1. Open Urlのセットアップ

    guard let source = options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String else { return false } let annotation = options[UIApplicationOpenURLOptionsAnnotationKey] as? String return FBSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: source, annotation: annotation)

  2. 以下の画像に示すように、キーチェーンのアクセス許可の問題を修正します

iOS 9 Keychain fix

49
Suraj Pathak

機能タブでキーチェーン共有を有効にする必要があります。

42
Di B.

私はまったく同じ問題を抱えていて、Info.plistを修正することで解決策を見つけることができました

LSApplicationQueriesSchemesにすべての可能なスキームを追加しました

完全なリストは次のようになります。

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fbapi20130214</string>
    <string>fbapi20130410</string>
    <string>fbapi20130702</string>
    <string>fbapi20131010</string>
    <string>fbapi20131219</string>
    <string>fbapi20140410</string>
    <string>fbapi20140116</string>
    <string>fbapi20150313</string>
    <string>fbapi20150629</string>
    <string>fbauth</string>
    <string>fbauth2</string>
    <string>fb</string>
    <string>fb-messenger-api20140430</string>
    <string>fb-messenger-platform-20150128</string>
    <string>fb-messenger-platform-20150218</string>
    <string>fb-messenger-platform-20150305</string>
    <string>fb-messenger-api</string>
    <string>fbshareextension</string>
</array>
26
Stas Zhukovskiy

FB SDK 4.6.0 Xcode 7.0 iOS9とまったく同じものを取得しています。 Facebook開発者サイトのすべてのセットアップと指示は、この手紙に従いました。上記のソリューションはどれもうまくいきませんでした。ログイン手順の実行中にデバイスにライブでデプロイし、Xcodeコンソールにフィードバックすると、動作が悪化することがわかりました。実際にログインするかどうかは、本当に幸運です。 seemsデプロイ後にアプリをコールドで再起動したときに、より予測可能な方法で動作するようにします。 -はい、これは事実です。

ログインに失敗すると決定すると、次のエラーが発生します。

Error Domain=com.facebook.sdk.login Code=308 "(null)"
14
Geoff H

Xcode7.1、Swift2.0での私のソリューション

手順1.ビルドフォルダーをクリーンアップします。option + command + K

または:Product> Cleanを選択します

enter image description here

ステップ2.派生データのクリーンアップ:Window> Projectsを選択します: enter image description here

Deleteを選択します: enter image description here

5
Tai Le

私は同じ問題を抱えていて、システムの資格情報を更新して修正しました

[FBSDKLoginManager renewSystemCredentials:^(ACAccountCredentialRenewResult result, NSError *error) {

    [[[YourAuthManager manager] facebookLoginManager] logInWithReadPermissions:@[@"email"] fromViewController:nil handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {

        if (error) {
            // Handle error
        } else if (result.isCancelled) {
            // Handle cancellations
        } else {
            // If you ask for multiple permissions at once, you
            // should check if specific permissions missing
            if ([result.grantedPermissions containsObject:@"email"]) {
                // Do work
            }
        }
    }];
}];

このソリューションは、再インストールよりも急進的ではなく、ユーザーが実行する必要はありません。私の推測では、FBSDK 4.6にはiOS 9システムのFB認証資格情報との競合がいくつかあります。

編集:しばらくテストした後、以前ほど頻繁に発生しませんでしたが、それでも問題であったため、FB SDKの以前のバージョンにダウングレードしました。うまくいけば誰かがより良い解決策を見つけます。

4
edsancha

FBのコードを少し掘り下げましたが、これは単に権限の問題のようです。

FBは、キーチェーンを使用して、ログイン時に認証チャレンジを保存します。返すとき、キーチェーンから値を取得しようとして失敗します。詳細については、 this SO answer を参照してください。

セキュリティ資格は、プロビジョニングプロファイル間で変更される可能性があります。また、ご存じのように、プロファイルを維持し、構成とデバイス/シムをストレートに保つことは、猫を飼うようなものです。これはなぜ人々がそのような一貫性のない行動を経験するのかを説明できます。

そのため、実稼働環境ではすべてが正常に機能し、テスト中に問題が解決しない場合は、プロビジョニングプロファイルの資格を再確認する必要があります。

4
kball

私の場合、最新のFB SDKにアップデートすることで修正されました。現時点では4.10。

1
AlexeyVMP

最新(4.11)FB SDKに更新すると、これも修正されました。更新後、プロジェクトが正常に機能するかどうかを確認することを忘れないでください

0
SlickDev

Xcode 7.1 ios 9.1 FB SDK 4.7.1でも同じエラーが発生していました。 。

Xcodeを使用しないアンインストール、インストール、およびテストは初めて正常に機能します。これにより、デバイスを再度プラグインして、少なくとも数回実行することができます(少し矛盾しているようです...)

0
jonypz

FBSDK 4.38を使用している場合、FBSDKLoginManager.mのchallengeExpectedの解析にバグがあります。

私は rinat-enikeev のホットフィックスを見つけました:

https://github.com/facebook/facebook-sdk-Swift/issues/286

https://github.com/facebook/facebook-objc-sdk/pull/922/commits/bcf7f787e92320a6322fb3f6130fdc3815bbafb7

ただ変える

NSString *challengeExpected = [self loadExpectedChallenge];

NSString *challengeExpected = [[self loadExpectedChallenge] stringByReplacingOccurrencesOfString:@"+" withString:@" "];

これで問題は解決しました。

0
user3674055

この問題を解決するには、機能で「キーチェーン共有」を有効にするだけです。

0
Bhavesh Patel

新しいplistキー/値を追加することで、SDK 4.6.0を使用してiOS9で再度ログインできるようになりました

<key>FacebookDisplayName</key>
<string>{Your App Name}</string>

ソースコード

また、他のいくつかの回答の手順を実行して、共有FBSDKLoginManager()インスタンスを実装しました。

0
swift taylor

アプリをアンインストールして再インストールすることで問題を解決しましたが、すぐに機能しました。

このエラーはおそらくiOS 9に関連しています。iOS9以降、SDKはSafariViewControllerを使用しており、すでにログインしているときに問題が発生するようです。

0
Gabriel Cartier

同じ問題FB SDK 4.5.1と上記のソリューションのどれも私のために働いた。 Boltsフレームワークをドラッグアンドドロップでプロジェクトに追加することでこれを解決しました(FacebookSDKディレクトリから)
そして、ボルトフレームワークをappDelegateに追加します

    #import <bolts/bolts.h>
0
Kong Hantrakool

FBSDKDelegateメソッドにloginButtonWillLoginがこれを置きます

- (BOOL) loginButtonWillLogin:(FBSDKLoginButton *)loginButton{
[FBSDKAccessToken setCurrentAccessToken:nil];
return YES;}
0
manu_inup

Suraj Pathak withXcode 9.4.1およびSwift 4.2に従いました

  1. AppDelegateに追加しましたdidFinishLaunchingWithOptions

    SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
    
  2. AppDelegateデリゲート関数に追加

    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        return SDKApplicationDelegate.shared.application(app, open: url, options: options)
    }
    
  3. 機能でキーチェーンを許可します。

0
user3736373