2015-04-17 10 views
7

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:

enter image description here

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:

enter image description here enter image description here

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]; 
} 
+0

Was passiert bei anderen Threads zum Zeitpunkt des Hängens? –

+0

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

+0

Können Sie ein Beispielprogramm hinzufügen, um den Fehlerfall an unserem Ende zu simulieren und weiter zu debuggen, um das Szenario zu verstehen? –

Antwort

2

scheint mit Parse 1.7.2

Nach v1.7.2 festgelegt werden - 27. April

Neu 2015: für Erweiterungen und WatchKit Local Data Sharing. Verbesserte NULL-Annotationen für ParseFacebookUtils.
Korrigiert: logOutInBackground mit Block Callback nicht am Haupt-Thread aufgerufen. Behoben: Möglicher Kompilierungsfehler bei der Verwendung von Importen für PFSubclassing.h.
Behoben: Nicht persistent currentUser wenn der automatische Benutzer über saveEventuell gespeichert wird.
Behoben: Seltenes Deadlockszenario mit ParseFacebookUtils und currentUser.
Behoben: Seltenes Problem beim Fixieren mehrerer Objekte in einer Reihe auf demselben Pin.
Fixed: Seltenes Szenario, wenn Benutzer nicht mit Facebook verknüpft werden konnte.
Verbesserte Leistung und Zuverlässigkeit von Local Datastore. Leistungsverbesserungen.
Andere kleine Fehlerbehebungen.

0

Ich habe mit meinem Team auf dem iOS SDK zu arbeiten und wurde das neueste SDK sollte lösen informiert. Können Sie versuchen, zu aktualisieren?

+0

Eric, welche Version ist es, die das Update hat. Wir sehen dieses Problem auch. Vielen Dank! –

+0

Ich hätte erwähnen sollen, dass wir die Pods Parse (1.7.1), ParseFacebookUtilsV4 (1.7.1), Bolts (1.1.4) und ParseUI (1.1.3) verwenden und das Problem immer noch sehen. Soweit wir das beurteilen können, wird dies ausgelöst, indem [PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:] zu früh nach [Parse setApplicationId: clientKey:] aufgerufen wird. –

+0

Ich habe eine Menge Code ohne Erfolg auskommentiert. Löschen der App und Neuinstallation wird es beheben. Aber wenn du erst einmal stecken geblieben bist, bist du dran, bis du es tust. –

1

Ich habe das gleiche Problem mit Parse 1.7.1 & FBSDK 4.0.1 und ich berichtete den Fehler zu analysieren, aber bisher ohne Glück. Es hat etwas mit dem lokalen Datenspeicher zu tun.

https://developers.facebook.com/bugs/779176035499837

Bitte geben Sie dort weitere Informationen.