Seit Aktualisierung von Facebook auf v4.0.x und die neuesten Parse-Bibliotheken, hängt meine App scheinbar beim Versuch, den Benutzer einzuloggen .Parse Login hängen seit Facebook 4.0.x mit [PFFacebookUtils initialisierenFacebookWithApplicationLaunchOptions: launchOptions] (Semaphore_wait_slow Trap)
Mein Stack-Trace sieht wie folgt aus:
ich vorher ein sehr ähnliches Problem hatte, antwortete hier: Parse crash when calling [PFFacebookUtils initializeFacebook] - semaphore_wait_trap
jedoch diese Lösung nicht mehr funktioniert, da es [PFUser currentUser]
scheint ersetzt worden mit [PFUser(Private) _getCurrentUserWithOptions:]
und [BFTask(Private) waitForResult:withMainThreadWarning:]
wo es stecken bleibt.
In meiner App habe ich PFUser in eine Klasse namens MPLUser subclassiert und die Benutzermethode außer Kraft gesetzt. Nicht sicher, ob dies etwas mit dem Problem zu tun hat?
+ (MPLUser *)user
{
return (MPLUser *)[PFUser user];
}
Sobald dies beginnt, wird es unmöglich, die App zu starten. Normalerweise gelingt es mir jedoch, die App ein paar Mal zu starten, bevor die Sperre beginnt. Es passiert normalerweise nach einem Absturz ...
Ich benutze pod 'ParseFacebookUtilsV4' und habe alle Bibliotheken auf die neuesten Versionen aktualisiert.
UPDATE:
Hier mehr Stack-Trace von einem anderen Thread, dass scheinbar anmelden versucht:
I initialisieren Parse und Facebook in der folgenden Reihenfolge. Wenn ich die Anrufe umgekehrt, es stürzt ab:
- (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];
}
Was passiert bei anderen Threads zum Zeitpunkt des Hängens? –
Ich habe die Frage mit einigen weiteren Informationen aktualisiert. Es scheint auch eine Menge auf anderen Threads zu passieren - Facebook und Parse initialisieren Zeug ... – Smikey
Können Sie ein Beispielprogramm hinzufügen, um den Fehlerfall an unserem Ende zu simulieren und weiter zu debuggen, um das Szenario zu verstehen? –