2015-04-17 21 views
7

自從將Facebook更新到v4.0.x和最新的Parse庫後,我的應用程序掛起,似乎在嘗試登錄用戶時。使用[PFFVideosUtils initializeFacebookWithApplicationLaunchOptions:launchOptions](semaphore_wait_slow陷阱)從Facebook 4.0.x解析登錄掛起

我的堆棧跟蹤看起來是這樣的:

enter image description here

我有一個非常類似的問題之前,回答在這裏:Parse crash when calling [PFFacebookUtils initializeFacebook] - semaphore_wait_trap

但是,這種解決方案不再有效,因爲它似乎[PFUser currentUser]已更換與[PFUser(Private) _getCurrentUserWithOptions:][BFTask(Private) waitForResult:withMainThreadWarning:]它卡住。

在我的應用程序中,我將PFUser分類爲一個名爲MPLUser的類,並覆蓋了用戶方法。不知道這是否與這個問題有關?

+ (MPLUser *)user 
{ 
    return (MPLUser *)[PFUser user]; 
} 

一旦這種情況發生,就無法啓動應用程序。不過,我通常會在鎖定開始之前啓動應用程序幾次。它通常發生在崩潰後...

我使用pod'ParseFacebookUtilsV4'並將所有庫更新到最新版本。

UPDATE:

這裏有更多的堆棧跟蹤從另一個線程,那就是看似試圖登錄:

enter image description here enter image description here

我初始化解析和Facebook以下順序。如果我反向調用,它崩潰:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [self initDefaults]; 
    [self initialiseApplicationSpecifics]; 
    [self setupParseWithOptions:launchOptions]; 
    [self enableCrashReporting]; 
    [self setupIAPs]; 
//etc... 
} 


- (void)initialiseApplicationSpecifics 
{ 
    [Flurry setCrashReportingEnabled:YES]; 
    [self registerParseSubclasses]; 
    [ParseCrashReporting enable]; 
    [Parse enableLocalDatastore]; 
#ifdef MPL 
    [Parse setApplicationId:@"xxxyyy" 
        clientKey:@"xxxyyy"]; 
    [Flurry startSession:@"xxxyyy"]; 
#elif MGM 
    [Parse setApplicationId:@"yyyxxx" 
        clientKey:@"yyyxxx"]; 
    [Flurry startSession:@"yyyxxx"]; 
#endif 
} 

- (void)setupParseWithOptions:(NSDictionary *)launchOptions 
{ 
    [PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions]; 
    [PFTwitterUtils initializeWithConsumerKey:@"aaaabbbb" 
           consumerSecret:@"bbbbaaaa"]; 
    [PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions]; 
} 
+0

在掛機時其他線程上發生了什麼? –

+0

我已經用更多的信息更新了這個問題。似乎在其他線程上也發生了很多事情 - Facebook和Parse初始化的東西... – Smikey

+0

您能否添加一個示例程序來模擬我們最後的錯誤情況並進一步調試以瞭解該場景? –

回答

2

似乎是固定與解析1.7.2

據V1.7.2 - 2015年4月27日

新功能:擴展和WatchKit本地數據共享。 改進了ParseFacebookUtils的可空性註釋。
已修正:在主線程上未調用塊回調的logOutInBackground。 已修復:爲PFSubclassing.h使用導入時可能出現的編譯錯誤。
固定:如果通過saveEventually保存自動用戶,則不持續currentUser。
修復:使用ParseFacebookUtils和currentUser的罕見死鎖場景。
修復:將多個對象連續固定到同一個引腳的問題。
修復:用戶無法與Facebook鏈接時的罕見場景。
提高本地數據存儲的性能和可靠性。 性能改進。
其他小錯誤修復。

0

我檢查了我的團隊在iOS SDK上工作,並被通知最新的SDK應該解決這個問題。你可以嘗試更新嗎?

+0

埃裏克,哪個版本特別是它有修復。我們也看到這個問題。謝謝! –

+0

我應該提到我們正在使用pods Parse(1.7.1),ParseFacebookUtilsV4(1.7.1),Bolts(1.1.4)和ParseUI(1.1.3),並且仍然看到這個問題。據我們所知,它是在[Parse setApplicationId:clientKey:]之後立即調用[PFFVideosUtils initializeFacebookWithApplicationLaunchOptions:]觸發的。 –

+0

我已經評論了很多代碼沒有成功。刪除應用程序並重新安裝會解決它。但是一旦你陷入困境,你就會陷入困境,直到你這樣做。 –