我的应用使用Facebook分享和发布喜欢的内容。它工作正常,直到我通过设置从Facebook删除应用程序 - >的应用程序。
用例如下:我通过我的应用程序在Facebook上授权,进行任何社交操作,保持应用程序打开,从Facebook上的应用程序中删除应用程序,尝试做或者再次共享。
然后出现登录对话框,在50%的情况下,应用程序崩溃[FBSession dealloc]
(在线程1 上,如导航器中所示)。堆栈跟踪如下所示:
0x141718: blx 0x850a90 ; symbol stub for: objc_msgSend
0x14171c: movw r0, #0x5586
0x141720: mov r1, r5
0x141722: movt r0, #0x92
0x141726: add r0, pc
0x141728: ldr r0, [r0]
0x14172a: ldr r0, [r4, r0]
0x14172c: blx 0x850a90 ; symbol stub for: objc_msgSend
0x141730: movw r0, #0x557a <<< EXC_BAD_ACCESS
事实证明,崩溃前FBSession
处于FBSessionClosed
状态。我有一个预防措施,在打开新会话之前检查这个权限并清除旧会话,如下所示:
FBSession* session = [FBSession activeSession];
[session closeAndClearTokenInformation];
[session close];
[FBSession setActiveSession:nil];
然后我用以下方法打开一个新会话
[FBSession openActiveSessionWithPublishPermissions:@[@"publish_actions", @"user_likes"]
defaultAudience:FBSessionDefaultAudienceFriends
allowLoginUI:YES
completionHandler: ... ]
发生了撞车事故。
有人能说出如何解决这个问题吗?
感谢。
延迟更新。 事实证明,我在代码中两次释放了一些NSString对象。所以问题不在于Facebook iOS客户端库。 在MRR周围安全,伙计们。
答案 0 :(得分:0)
我建议您使用“仪器工具”检查一次,您将清楚地了解它为何以及在何处崩溃。