2014-11-26 18 views
8

Tôi đang làm việc với Unity 4.6 và Facebook Unity SDK 6.0.Facebook-unity-sdk không sử dụng iOS gốc SSO

Khi mọi thứ trên Android xuất hiện sưng lên, nhưng trên iOS tôi dường như không sử dụng SSO gốc của Facebook. Nó liên tục trở lại đăng nhập dựa trên trình duyệt, điều này thực sự tạo ra một sự rung cảm không chuyên nghiệp.

Tôi đã thử nghiệm điều này trên mười thiết bị khác nhau, tất cả đều sử dụng cả chứng chỉ Nhà phát triển.

Và tôi đã đi qua bảng liệt kê sau đây:

  • XCode trên chạy recieves không có lỗi hoặc bản ghi rằng nên chỉ ra điều gì sai trái, nhưng vẫn sử dụng "browserbased" giải pháp đăng nhập cũ.
  • Điều này cũng áp dụng khi tôi sử dụng cảnh ví dụ có trong SDK.
  • Các ứng dụng được bật cho SSO trong giao diện điều khiển cho nhà phát triển Facebook, và trận đấu bó ID.
  • Các FBXXXXXXXXX URL sceme là trong info.plist và dường như chỉ tốt trong XCode.
  • Các FacebookAppID then chốt trong info.plist cũng được thiết lập, và sử dụng số ứng dụng facebook id.
  • Trong facebook, ứng dụng được mở cửa cho công chúng nói chung, có email liên hệ cần thiết, và bó iOS được cấu hình.

Tôi đã thử với cả tài khoản nhà phát triển, quản trị viên và "người lạ" và không phải là tài khoản duy nhất có thể đăng nhập facebook iOS gốc.

Có ai gặp này? Hầu hết các trường hợp tương tự tôi có thể tìm thấy đã hơn một tuổi và không thực sự áp dụng cho điều này.

+0

Làm thế nào bạn gọi FB.Login? Ứng dụng của bạn có được định cấu hình để có nhiều hơn một ID ứng dụng FB không? – shacharg

Trả lời

1

Trong Facebook SDK shareDialogMode 7.2 thay đổi trong Unity chính nó trong MobileFacebook.cs enter image description here

+0

Im rất vui vì họ đã chuyển nó :) –

1

Để đăng nhập facebook gốc trên iOS, hãy tìm tệp FbUnityInterface.mm (Nội dung/Facebook/Editor/iOS) và tìm phương thức -(void)login:(const char *)scope.

Trong phương pháp này thay thế:

[self.session openWithBehavior:FBSessionLoginBehaviorWithFallbackToWebView] 

với điều này:

[self.session openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent] 

Facebook Unity SDK bởi giá trị mặc định không sử dụng iOS có nguồn gốc khai thác gỗ hành vi, đó là một chuyện lạ.

Có thêm vài FBSessionLoginType hành vi, được mô tả trong FBSession.h mà có thể được tìm thấy trong FacebookSDK cũng như:

typedef enum { 
    /*! Attempt Facebook Login, ask user for credentials if necessary */ 
    FBSessionLoginBehaviorWithFallbackToWebView  = 0, 
    /*! Attempt Facebook Login, no direct request for credentials will be made */ 
    FBSessionLoginBehaviorWithNoFallbackToWebView = 1, 
    /*! Only attempt WebView Login; ask user for credentials */ 
    FBSessionLoginBehaviorForcingWebView    = 2, 
    /*! Attempt Facebook Login, prefering system account and falling back to fast app switch if necessary */ 
    FBSessionLoginBehaviorUseSystemAccountIfPresent = 3, 
    /*! Attempt only to login with Safari */ 
    FBSessionLoginBehaviorForcingSafari = 4, 
} FBSessionLoginBehavior; 
+0

Đây là câu trả lời chính xác nữa, Facebook đã chuyển điều này sang các lớp C# –

+0

Điều cần biết - câu trả lời của tôi là giải pháp làm việc duy nhất tại thời điểm câu hỏi được hỏi - vì vậy chính xác cho phiên bản FB SDK đó. – kreys

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