问题
Since the latest Parse release (v1.6.3) my app gets stuck at launch, and the last breakpoint it hits is [PFFacebookUtils initializeFacebook];
If I hit pause and look at the debugger, the stack trace looks like this:
I'm calling [PFFacebookUtils initializeFacebook]
in - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
as advised.
From googling the semaphore_wait_trap issue, it seems to be related to clashing background threads(?) in Core Data. But I've tried commenting out all my background Parse queries and it still occurs.
I tried updating pods (this occurred before updating, incidentally). I can also run the app from a clean install, until I log in to Facebook, at which point the crash happens every time I try to launch. The PFUser appears to be returning fine when queried. I've also cleared out my entire database but it didn't make a difference.
Anyone know what might be going on?
回答1:
I was seeing this same issue and found that changing the order of this initialization sequence (I am using swift) got me past it (notably commenting out the local data store also unblocks it):
This gets caught in semaphore_wait_trap:
// Parse integration initialization
Parse.enableLocalDatastore()
Parse.setApplicationId("<my app id>", clientKey: "<my client key>")
PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions)
PFFacebookUtils.initializeFacebook()
This does not:
// Parse integration initialization
Parse.enableLocalDatastore()
Parse.setApplicationId("<my app id>", clientKey: "<my client key>")
PFFacebookUtils.initializeFacebook()
PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions)
Not sure of the underlying issue but hope it helps.
回答2:
Seems to be fixed with parse 1.7.2
According to v1.7.2 — April 27, 2015
New: Local Data Sharing for Extensions and WatchKit. Improved nullability annotations for ParseFacebookUtils.
Fixed: logOutInBackground with block callback not called on main thread. Fixed: Potential compilation error with using imports for PFSubclassing.h.
Fixed: Not persistent currentUser if saving automatic user via saveEventually.
Fixed: Rare deadlock scenario with using ParseFacebookUtils and currentUser.
Fixed: Rare issue with pinning multiple objects in a row to the same pin.
Fixed: Rare scenario when user could be not linked with Facebook.
Improved performance and reliability of Local Datastore. Performance improvements.
Other small bug fixes.
来源:https://stackoverflow.com/questions/28701077/parse-crash-when-calling-pffacebookutils-initializefacebook-semaphore-wait-t