web-dev-qa-db-ja.com

iOS-Facebookログインエラー-URLの作成中に不明なエラーが発生しました(com.facebook.sdk.coreエラー3)

IOS 8以降で開発されているiOSアプリにFacebookログインを使用しています。 (最新のFacebook SDKが使用されています)

私はFacebookの公式ガイドに記載されているすべての基本的な手順に従いました。しかし、ログインボタンをクリックすると、次のエラーが表示されます。

不明なURL構築エラー(com.facebook.sdk.coreエラー3)

私は間違ったことを確認するためにチェックしましたが、すべてがガイドのように見え、1日ここにとどまっています。

FBログインデリゲートのコード:

class FBLoginDelegate: NSObject,  FBSDKLoginButtonDelegate  {


func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!){
    if(error == nil){
        print("Logged In from Btn")
    }else{
        print("Error: \(error.localizedDescription)") //Here it gives the error 
    }

}
}

FBログインボタンのコード:

      var fbLoginBtnDelegate = FBLoginDelegate()
    let fbBtnWidth = self.view.bounds.width - (self.fbContainerLeftConstraint.constant + self.fbContainerRightConstraint.constant)
    let fbLoginButton = FBSDKLoginButton(frame: CGRectMake(0,0,fbBtnWidth,self.fbButtonContainer.bounds.size.height))

    self.fbButtonContainer.addSubview(fbLoginButton)
    fbLoginButton.readPermissions = ["public_profile", "user_friends", "email", "user_birthday"]
    fbLoginButton.delegate = fbLoginBtnDelegate
22

Facebook iOS SDKをバージョン4.39.0にアップグレードした場合、このエラーの原因となるバグがあります。 4.38.1にダウングレードすると、この問題の解決に役立ちます。 FBSDKCoreKitとFBSDKLoginKitの両方を必ずダウングレードしてください。

pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'

必ずビルドフォルダーをクリーンアップして、SDKを再ビルドしてください。

update:このバグは4.39.1 SDKリリースで修正されました。 https://developers.facebook.com/docs/ios/change-log-4x/

64
David Liu

これは、バージョン4.39.0のFacebook SDKバグであり、このエラーの原因です。このバグを解決するには、CoreKitとLoginKitの両方を4.38.0にダウングレードし、派生データをクリアし、ビルドフォルダーをクリーンアップします(CMD + OPTION + SHIFT + K)。一方、4.38.1も正常に動作します。

pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'

FacebookCoreとFacebookLoginを使用している場合は、次のようにします。

pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'
7
shanezzar

私にとっての問題は、Info.plistCFBundleURLTypes> CFBundleURLSchemesに示されているFacebookアプリIDのスペルが間違っていることでした。

私は.xcconfigファイルからアプリIDをインポートしていたため、DebugまたはReleaseスキームを実行しているかどうかに応じて、基になる値が変化します。しかし、plistファイルを印刷すると、xcconfigファイルから読み取ったときに、アプリIDの前後に不要な引用符がありました。たとえば、URLスキームがfb012345678である必要がある場合、それはfb"012345678"でした。

Facebookガイドに記載されているように、アプリIDをInfo.plistに正しくハードコーディングしてみましたが、FBSDKLoginButtonは正常に機能しました。 Safariが登場し、Facebookのログイン画面が表示されました。ただし、IDをハードコードする必要はありません。Info.plistで正しく置き換えられていることを確認してください。

2
Matthew Quiros

ターミナルでプロジェクトフォルダーに移動します

ポッドの更新

現在のバージョン4.39.1に更新する

1
Ionz

私はフレームワークファイル/フォルダーをプロジェクトにコピーすることになっているreact-native-fbsdkの指示に従っていました。したがって、上記のCocoapodのアプローチは私にはうまくいきませんでした。

私がしたことは、プロジェクトから既存のフレームワークファイルを削除し(フレームワークアイテムを右クリック->削除->はいすべて削除)、それから以前のバージョンのフレームワークをダウンロードして再度追加します:

https://developers.facebook.com/docs/ios/downloads/

0

これを機能させるには、2つのことを行う必要がありました。

1.ポッドをにダウングレード

pod 'FBSDKCoreKit', '~> 4.38.0'
pod 'FBSDKLoginKit', '~> 4.38.0'

2.他のリンカーフラグから-ObjCを削除する

これはFacebook開発者ポータルで提案されていますが。これにより、以下のエラーが発生しました。

com.facebook.sdk:FBSDKErrorDeveloperMessageKey = URLの構築中に不明なエラーが発生しました。

お役に立てれば。

0
shakil080