2016-09-28 29 views
9

Tôi sử dụng facebook để đăng nhập vào ứng dụng của mình. Cố gắng đăng nhập bằng Facebook trên iOS 10, iPhone 6s giả lập.Vấn đề đăng nhập Facebook với iOS 10

-canOpenURL: failed for URL: "fbauth2:/" - error: "The operation couldn’t be completed. (OSStatus error -10814.)" 

10814 : kLSApplicationNotFoundErr 
-10814 No application in the Launch Services database matches the input criteria. 

Tôi đang sử dụng phiên bản facebook sdk 4.13.1. Trước XCode 8, cùng một mã đã hoạt động hoàn hảo.

Bất kỳ trợ giúp nào? Cảm ơn trước.

Trả lời

-1

Hãy chắc chắn rằng bạn Info.plist tương ứng với 2. Whitelist Facebook Apps phần của https://developers.facebook.com/docs/ios/ios9

Đối với iOS Facebook SDK v.4.13 nó nên chứa

<key>LSApplicationQueriesSchemes</key> 
<array> 
     <string>fbapi</string> 
     <string>fb-messenger-api</string> 
     <string>fbauth2</string> 
     <string>fbshareextension</string> 
</array> 

Những yêu cầu này là được giới thiệu cho iOS 9.x.

+0

tôi đã làm điều này, nhưng vấn đề không được giải quyết. –

+0

Bạn chưa cài đặt ứng dụng Facebook trên Trình mô phỏng, do đó, lỗi này thông báo cho bạn biết rằng iOS không thể tìm thấy ứng dụng này. Trong trường hợp này, bạn sẽ thấy cửa sổ đăng nhập dựa trên web. –

+2

Bạn có thể giúp điều đó không, để chạy chế độ xem đăng nhập dựa trên web. Điều gì xảy ra là: Tôi chạy ứng dụng, nhấn nút facebook. Chế độ xem dựa trên web sẽ mở ra và cho biết rằng bạn đã đăng nhập vào facebook cho ứng dụng này. Sau đó, tôi nhấp vào ok, xem đóng cửa và lỗi trả lời facebook 308 đi kèm. Bất kỳ trợ giúp nào? –

11

Lỗi status 10.814 xảy ra về cơ bản khi cantOpenUrl, được sử dụng bởi các facebook gọi url sử dụng các đối số fbauth2:/ .Như đề nghị BT thread này, in xảy ra bên trong chức năng này, do đó bạn không thể làm bất cứ điều gì nhiều với điều đó

của Apple thay đổi cách làm việc với IOS 10.To khắc phục vấn đề này bạn có thể đi đến

tiêu> Capabilities > Bật Keychain Chia sẻ

Đây là một ảnh chụp màn hình từ cùng một sợi liên kết ở trên enter image description here

Như posted in bài này của diễn đàn developor vấn đề

Vấn đề là với FBSDLoginManager, các Bộ xử lý hoàn thành không bao giờ được gọi là

so in debuging, the author put the breakpoint in "FBSDKLoginManager.m" at "logInWithBehavior: (FBSDKLoginBehavior)loginBehavior" and findout that weakSelf getting nil and not be able to call "logInWithBehavior: serverConfiguration: serverConfigurationLoadError:"

- (void)logInWithBehavior:(FBSDKLoginBehavior)loginBehavior 
    { 
     __weak __typeof__(self) weakSelf = self; 
     [FBSDKServerConfigurationManager loadServerConfigurationWithCompletionBlock:^(FBSDKServerConfiguration *serverConfiguration, NSError *loadError) { 
     [weakSelf logInWithBehavior:loginBehavior serverConfiguration:serverConfiguration serverConfigurationLoadError:loadError]; 
     }]; 
    } 

Giải pháp 1:

Change FBSDKLoginManager variable as property rather than using as function variable. Make sure, FBSDKLoginManager variable must remain alive until the completion handler call

Bạn có thể bật -Wimplicit-giữ-tự cảnh báo để có được một cảnh báo nếu bạn tham khảo tự vô tình trong một khối.Posted in Giải pháp Github issues

2:

Bạn có thể thêm chúng vào plist của bạn

<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>fb-messenger-api</string> 
     <string>fbauth2</string> 
     <string>fbshareextension</string> 
    </array> 

và cũng thay đổi appdelegate như sau

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
// Override point for customization after application launch. 
    return SDKApplicationDelegate.shared.application(application,  didFinishLaunchingWithOptions: launchOptions) 
} 
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool 
{ 
    return SDKApplicationDelegate.shared.application(app, open: url, options: options) 
} 

theo đề nghị của author Sau đó bạn có thể chạy swift3 của bạn, SDK, ios10 trên XCode8

Ngoài ra kiểm tra như đề cập đến bởi author nếu Google Analytics được thêm bộ điều khiển riêng của mình trên đỉnh của bộ điều khiển xem của bạn bằng cách thiết lập

Setting "FirebaseAppDelegateProxyEnabled" to "NO" in the -Info.plist solved the problem.

.

Full attribution goes to the forum and the authors mentioned in the forum

+0

hey tôi nhận ra rằng bằng cách nào đó tôi downvoted câu trả lời của bạn, và điều này rõ ràng không phải là ý định của tôi. tôi thậm chí không biết làm thế nào điều này xảy ra và đang cố gắng để hoàn tác bỏ phiếu của tôi nhưng hệ thống cảnh báo tôi rằng nó không thể làm điều đó trừ khi bạn chỉnh sửa câu trả lời của bạn. vì vậy nếu bạn làm điều đó tôi sẽ upvote nó. Tôi xin lỗi vì bất kỳ sự bất tiện! – i6x86

+0

Không thành vấn đề, cảm ơn –

1

Hãy chắc chắn rằng bạn đã bật chia sẻ Keychain trong Capabilities-> Keychain Sharing Enable chia sẻ

0

Hãy thử thêm dòng này trong bạn didFinishLaunchingWithOptions chức năng trong appdelegate

FBSDKApplicationDelegate.sharedInstance chuỗi Key () .ứng dụng (ứng dụng, didFinishLaunchingWithOptions: launchOptions)

+0

Bạn có thể giải thích câu trả lời của mình để người khác có thể học hỏi từ nó không? – Robert

Các vấn đề liên quan