Xcode 7と最新のiOS SDKに更新しました。アプリのplistに適切なエントリを追加しました。
私のアプリのFacebookログインはデバイス上で正常に機能します。ただし、iOS 9シミュレーターでは、次の結果が得られます。
-canOpenURL: failed for URL: "fbauth2:///" - error: "(null)"
また、ログインが機能していません。 facebookのログインの問題-canOpenURL:URLの失敗: "fbauth2:///"-エラー: "(null)" ですが、FBSDKCoreKitフレームワークがあります。 Facebook SDK 4.5 IOS 9 も見ましたが、答えは私の問題を解決しません。
https://developers.facebook.com/docs/ios/ios9 でチェックリストを作成したのに、デバイスではなくシミュレータでこのエラーが発生するのはなぜですか?
これは、canOpenURL:呼び出しがfalseを返したことを示すXcodeの警告です。上記のようにplistで
LSApplicationQueriesSchemes
エントリを設定している限り、この警告は無視できます。
これは問題ではありません。 FB SDKは、fbauth2:// URLタイプのネイティブFacebookアプリを開こうとしています。シミュレータでは利用できないため、ネイティブのFacebookアプリを開けなかったというログを記録するだけです。 SimulatorでFacebookアカウントを設定し、FBビューボタンにWebビューを開く代わりにネイティブのFacebookアカウントを使用するように指示できます。しかし、Facebookは、何百万人もの人々がブラウザーでFacebookを使用しているため、iOS 9では、新しいSFSafariViewControllerを、デバイス上でもFacebookログインのデフォルトの動作として使用していると主張しています。ネイティブのFacebookを使用して、機能するかどうかを確認できます。
ディスカッションについては、このリンクを確認してください。
Facebook SDKをバージョン4.7から4.5.1にダウングレードし、シミュレーターとiPhoneデバイスの両方で正常に動作しました(Facebookアプリがインストールされていない場合)。
アプリの.plist
ファイルをLSApplicationQueriesSchemes
配列で更新した後、すでに完了しているようです:
次、あなたのFacebook SDKがバージョン4.6.0。そうでない場合は、 Facebookの指示 に従ってください。
最後に、おそらく問題が発生する場所は、Resetシミュレーターのコンテンツと設定
Appleのシミュレーター(IDEを含む)にはバグがあり、シミュレーターのリセットとともに、閉じて再度開くことは、ソリューションの検索の早い段階で常に検討するべきものです。
お役に立てれば!
Facebookによると:
iOS SDKは、SafariViewControllerをサポートしています。これにより、アプリの切り替えを行う代わりに、Webレンダリングされたダイアログの表示を切り替えることができます。このベータSDKは、デバイスに基づいてユーザーにとって最適なアプリ切り替えエクスペリエンスを自動的に決定します。たとえば、FacebookログインのSafariではなく、SafariViewControllerを使用してユーザーのエクスペリエンスをデフォルトに設定します。
Facebook参照リンク: https://developers.facebook.com/bugs/786729821439894/?search_id
スタック参照リンク: https://stackoverflow.com/a/32593070/2905967
1] Developer.facebookでの認証とFacebook IDの生成:=> 460481580805052
2]ビットコードを設定:ビルド設定からいいえ
3] Plistファイルのセットアップ
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>fb460481580805052</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>460481580805052</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>akamaihd.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>facebook.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>fbcdn.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
<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-messenger-api20140430</string>
<string>fb-messenger-platform-20150128</string>
<string>fb-messenger-platform-20150218</string>
<string>fb-messenger-platform-20150305</string>
</array>
4] 4 SDK SDKフレームワークのダウンロード
=>Bolts.framework
=>FBSDKCoreKit.framework
=>FBSDKLoginKit.framework
=>FBSDKShareKit.framework
次の手順に従うことで、このエラーを回避できる場合があります。
1)->サポートファイルに移動します
2)info.plist
3)info.plistを右クリック->名前を付けて開く->ソースコードを選択
* <dict>...</dict>
*内に以下のコードを追加*
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
IOS 9以降では、AppDelegateファイルに次のメソッドを追加します。
lSApplicationQueriesSchemesを使用するか、アプリIDをplistに追加してください。