我正在使用Unity 4.6和Facebook Unity SDK 6.0。
在Android上看起来很棒,但在iOS上我似乎没有使用原生的Facebook SSO。它不断恢复到基于浏览器的登录,这真的给人一种不专业的氛围。
我在十个不同的设备上测试了这一点,所有设备都使用了开发人员证书。
我已经查看了以下清单:
我已尝试过开发人员,管理员和“陌生人”帐户,而且没有一个帐户能够获得原生的iOS facebook登录。
有没有人见过这个?我能找到的大多数类似案例都超过一年,并不适用于此。
答案 0 :(得分:1)
要在iOS上登录原生facebook,请找到文件FbUnityInterface.mm
(资产/ Facebook /编辑/ iOS)并找到方法-(void)login:(const char *)scope
。
在此方法中替换:
[self.session openWithBehavior:FBSessionLoginBehaviorWithFallbackToWebView]
用这个:
[self.session openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent]
默认情况下,Facebook Unity SDK不使用本机iOS日志记录行为,这有点奇怪。
还有一些FBSessionLoginType
行为,FBSession.h
中描述的行为也可以在FacebookSDK中找到:
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;
答案 1 :(得分:1)