Tôi đã cài đặt Swift SDK của Facebook qua Cocoapods:Facebook SDK đăng nhập với Swift 3 iOS 10
pod 'FacebookCore', :git => "https://github.com/facebook/facebook-sdk-swift"
pod 'FacebookLogin', :git => "https://github.com/facebook/facebook-sdk-swift"
Tôi đã theo các hướng dẫn đăng nhập từ Swift SDK của Facebook (https://developers.facebook.com/docs/swift/login) nhưng không thể làm cho nó làm việc.
Bên trong điều khiển điểm của tôi tôi có như sau:
@objc fileprivate func facebookSignIn() {
let loginManager = LoginManager()
print("LOGIN MANAGER: \(loginManager)")
loginManager.logIn([ .publicProfile, .email ], viewController: self) { loginResult in
print("LOGIN RESULT! \(loginResult)")
switch loginResult {
case .failed(let error):
print("FACEBOOK LOGIN FAILED: \(error)")
case .cancelled:
print("User cancelled login.")
case .success(let grantedPermissions, let declinedPermissions, let accessToken):
print("Logged in!")
print("GRANTED PERMISSIONS: \(grantedPermissions)")
print("DECLINED PERMISSIONS: \(declinedPermissions)")
print("ACCESS TOKEN \(accessToken)")
}
}
}
"quản lý Login: etc." in khi tôi nhấp vào nút và chế độ xem web sẽ mở ra. Tôi có thể đăng nhập qua Facebook và sau đó chế độ xem web bị trống và không có gì xảy ra. Ứng dụng hiển thị trong ứng dụng Facebook của tôi, do đó, một số ủy quyền đã diễn ra, nhưng nếu tôi nhấp vào nút "Xong" trong chế độ xem web, kết quả của cuộc gọi lại là .cancelled
và "Người dùng đã hủy đăng nhập". được in.
Tôi đã thêm Sharing Keychain để quyền lợi của tôi, và tôi đã cập nhật info.plist của tôi:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string> [ FB STRING ] </string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>[ APP ID ]</string>
<key>FacebookDisplayName</key>
<string>[ APP NAME ]</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
Tôi thậm chí đã thay đổi NSAppTransportSecurity
xác lập cá nhân.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Tôi biết đây là một bản sao của iOS 9 Facebook login simulator -canOpenURL: failed for URL: "fbauth2:///" - error: "(null)" và How to use Facebook iOS SDK on iOS 10 nhưng không ai trong số các giải pháp có vẻ làm việc cho tôi, trừ khi tôi đã bỏ lỡ một cái gì đó? Mọi đề xuất đều được đánh giá cao.
Một số lỗi được in thêm:
[App] if we're in the real pre-commit handler we can't actually add any new fences due to CA restriction
[error] error: (6922) I/O error for database at /var/mobile/Containers/Data/Application/F3D8E126-B0CC-4C06-81A5-D7A7F849B3BD/Documents/OfflineModel2.sqlite. SQLite error code:6922, 'disk I/O error'
Và khi tôi không có ứng dụng FB được cài đặt trên điện thoại của tôi, tôi nhận được:
-canOpenURL: failed for URL: "fbauth2:/" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"
Tôi phải thay đổi 'SDKApplicationDelegate' thành' FBSDKApplicationDelegate' –
@ifedapoolarewaju Trong trường hợp đó, bạn nên thay đổi việc nhập của mình thành FacebookCore và FacebookLogin từ các mô-đun có tiền tố FBSDK. Đó là những cái cũ theo như tôi hiểu, nhưng các mô-đun Swift phụ thuộc vào chúng, chúng được kéo xuống bằng Pod. – nickdnk