簡體   English   中英

無法在iOS上使用Facebook登錄(SDK無法建立身份驗證URL)

[英]Unable to login with Facebook on iOS (SDK can't build auth URL)

沒有明顯的原因,我具有“使用Facebook登錄”功能的功能齊全的應用程序昨天停止工作。

我深入研究該錯誤,發現由於某種原因無法在內部構建身份驗證URL,從而使整個過程失敗。

問題是由於+ (NSURL *)URLWithScheme:(NSString *)scheme host:(NSString *)host path:(NSString *)path queryParameters:(NSDictionary *)queryParameters error:(NSError *__autoreleasing *)errorRef方法在FBSDKInternalUtility類中。

在第430行中,它嘗試構建URL:

NSURL *URL = [[NSURL alloc] initWithString:[NSString stringWithFormat:
                                          @"%@://%@%@%@",
                                          scheme ?: @"",
                                          host ?: @"",
                                          path ?: @"",
                                          queryString ?: @""]];

我已經完成了代碼。 schemehostpathqueryString都已設置。 雖然它返回nil而不是URL。 我嘗試用一​​個空的查詢字符串調用該方法,它實際上建立了URL。 由於某種原因, queryString導致URL構建不正確。

這是queryString :(我用123456789替換了我的應用ID)

(lldb) po queryString ?auth_type=rerequest&client_id=123456789&default_audience=friends&display=touch&e2e={%22init%22%3A70747.196361124996}&fbapp_pres=1&redirect_uri=fb123456789%3A%2F%2Fauthorize%2F&response_type=token%2Csigned_request&return_scopes=true&scope=user_birthday%2Cemail%2Cuser_friends%2Cuser_photos&sdk=ios&sdk_version=4.39.0&state={%22challenge%22%3A%22yi8jE3mok79u9BheN8dzCMCviGY%253D%22%2C%220_auth_logger_id%22%3A%22329202ED-2F9B-4DBC-A191-E2C720D9779C%22%2C%22com.facebook.sdk_client_state%22%3Atrue%2C%223_method%22%3A%22sfvc_auth%22}

是什么原因造成的? 就在幾天前。

在模擬器上遇到相同的錯誤后,我更詳細地檢查了對我的應用程序所做的更改。 這是最新的Facebook SDK(4.39)。 我運行了一個pod update來更新其他一些pod update ,這也將Facebook SDK從4.38.1更新到了4.39。

我恢復到4.38.1,問題消失了。 換句話說, Facebook SDK 4.39打破了自己的登錄功能,實際上使自己的SDK無法使用。

強制使用以下舊版本解決了該問題:

pod 'FBSDKCoreKit', '~> 4.38.1'
pod 'FBSDKLoginKit', '~> 4.38.1'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM