Saya mencoba menggunakan Xcode 8 untuk membangun aplikasi dengan login Facebook menggunakan Swift 3. Saat saya beralih kembali iOS Simulator 9.3, itu berfungsi. Di iOS 10, saya menerima kesalahan ini:
""fbauth2:/" The operation couldn’t be completed. (OSStatus error -10814.)"
dan
Optional(Error Domain=com.facebook.sdk.login Code=308 "(null)")
Ada yang punya solusi untuk ini?
Catatan 1 :
Setelah debugging, masalah ini adalah FBSDK cant update expect_challange
. Fungsi SecItemUpdate
di dalam security.framework
tidak berfungsi. Ini adalah masalah iOS 10
ios
swift
facebook-ios-sdk
ios10
trquoccuong.dll
sumber
sumber
Jawaban:
Error OSStatus -10814 terjadi ketika
canOpenURL:
tidak ada aplikasi yang dapat membuka URL ini (sebenarnya Facebook mencoba mencari aplikasinya dengan memanggilcanOpenURL:
dengan argumen "fbauth2: /"). Pencetakan terjadi di dalam fungsi, jadi Anda tidak dapat melakukan apa pun dengan itu. Tetapi jika Anda akan menjalankan aplikasi Anda di perangkat dengan aplikasi Facebook yang diinstal, Anda tidak akan melihat kesalahan ini.Kesalahan 308 terjadi karena situasi, ketika nilai yang disimpan di rantai kunci tidak sama dengan nilai, yang disimpan dalam parameter penyelesaian facebook (untuk informasi lebih lanjut Anda dapat memeriksa
-[FBSDKLoginManager completeAuthentication:expectChallenge:]
).Itu terjadi karena Apple mengubah cara bekerja dengan rantai kunci di iOS 10. Untuk memperbaiki masalah ini Anda cukup pergi ke Target-> Kemampuan dan mengaktifkan berbagi rantai kunci (ini memungkinkan akses ke rantai kunci untuk aplikasi Anda):
Jika Anda menggunakan Xamarin (baca tautan ini untuk informasi lebih lanjut, terima kasih @dynamokaj):
sumber
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
dan mencoba membangun kembali, masih mendapatkan masalah yang sama. Saya sekarang menyadari bahwa kesalahan yang saya lihat lebih mirip dengan stackoverflow.com/questions/39091841/…Masalah yang sama ada di aplikasi saya, saya memeriksa banyak solusi tetapi tidak berfungsi untuk saya. Saya telah memperbaiki masalah ini menggunakan metode di bawah ini.
Buka Tautan ini Pilih Aplikasi Anda dan konfigurasikan
info.plist
import
dan tambahkan kode ini diAppDelegate
sumber
Alasan utama mengapa Anda mendapatkan kesalahan berikut,
adalah simulator iOS Anda belum menginstal Aplikasi Facebook. Sampai Anda menginstal aplikasi di simulator iOS Anda, Anda akan terus mendapatkan kesalahan. Coba jalankan aplikasi iOS Anda pada perangkat iOS yang disediakan dengan Facebook diinstal dan Anda tidak akan melihat pesan kesalahan lagi. Semoga ini membantu!
sumber
Dalam kasus saya, perbaikannya adalah *:
* Seperti yang direkomendasikan oleh @MoridinBG di halaman Github SDK Facebook
sumber
Kesalahan ini juga dapat terjadi jika Anda menggunakan FBSDKCoreKit atau FBSDKLoginKit versi 4.39.0. Ada bug dalam versi SDK ini. Tingkatkan ke 4.39.1 atau lebih tinggi untuk memperbaikinya. Detailnya di sini .
Sebagai catatan tambahan, pengguna lain menyebutkan bahwa kesalahan ini terlihat jika Anda tidak menginstal Facebook di simulator. Itu benar, tetapi SDK seharusnya secara otomatis kembali ke metode login Web ketika aplikasi tidak diinstal. Jika itu tidak terjadi, hal itu mungkin disebabkan oleh masalah lain seperti nilai yang hilang / salah konfigurasi di Info.plist Anda (periksa LSApplicationQueriesSchemes) atau metode yang hilang di AppDelegate Anda.
sumber
Dalam kasus saya, masalahnya adalah Google Analytics. Secara default sepertinya itu menambahkan pengontrol tampilan sendiri di atas pengontrol tampilan aplikasi. Menyetel "FirebaseAppDelegateProxyEnabled" ke "TIDAK" di {Your app} -Info.plist memecahkan masalah.
sumber