OStack程序员社区-中国程序员成长平台

标题: ios facebook登录在取消按钮上崩溃 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 16:16
标题: ios facebook登录在取消按钮上崩溃

重现错误的步骤:

  1. 用 Facebook 登录
  2. 输入凭据
  3. 点击取消按钮

您的实现中的相关代码片段: ~~~

NSLog(@"Your code goes here");
var manager = FBSDKLoginManager();


    manager.loginBehavior = FBSDKLoginBehavior.Web

    manager.logInWithReadPermissions(
        ["public_profile","email" ],
        handler: {
            (result: FBSDKLoginManagerLoginResult!, error: NSError!) -> Void in

            if ((error) != nil)
            {
                // Process error
                println("error\(error)")

            }
            else if result.isCancelled {
                // Handle cancellations
                println("isCancelled\(result.isCancelled)")


            }
            else {
                // If you ask for multiple permissions at once, you
                // should check if specific permissions missing
                if result.grantedPermissions.contains("email")
                {
                    self.returnUserData()
                }
            }


    })

~~~

SDK 版本:v4.5.1

当我调试时,我遇到了错误

+[FBSDKInternalUtility unregisterTransientObject:]:
    0x103ad7cb2 <+0>:   pushq  %rbp
    0x103ad7cb3 <+1>:   movq   %rsp, %rbp
    0x103ad7cb6 <+4>:   pushq  %r15
    0x103ad7cb8 <+6>:   pushq  %r14
    0x103ad7cba <+8>:   pushq  %r13

0x103ad7cbc <+10>:  pushq  %r12
0x103ad7cbe <+12>:  pushq  %rbx
0x103ad7cbf <+13>:  pushq  %rax
0x103ad7cc0 <+14>:  movq   %rdx, %rdi
0x103ad7cc3 <+17>:  callq  *0x207d57(%rip)           ; (void *)0x0000000105e6e930: objc_retain
0x103ad7cc9 <+23>:  movq   %rax, %r14
0x103ad7ccc <+26>:  movq   0x5375cd(%rip), %rdi      ; _transientObjects
0x103ad7cd3 <+33>:  movq   0x2f99ae(%rip), %rsi      ; "objectForKey:"
0x103ad7cda <+40>:  movq   0x207d2f(%rip), %r13      ; (void *)0x0000000105e71000: objc_msgSend

    0x103ad7ce1 <+47>:  movq   %r14, %rdx
    0x103ad7ce4 <+50>:  callq  *%r13
    0x103ad7ce7 <+53>:  movq   %rax, %rdi
    0x103ad7cea <+56>:  callq  0x103c2e7e0               ; symbol stub for: objc_retainAutoreleasedReturnValue
    0x103ad7cef <+61>:  movq   %rax, %rbx
    0x103ad7cf2 <+64>:  movq   0x2f9a3f(%rip), %rsi      ; "unsignedIntegerValue"
    0x103ad7cf9 <+71>:  movq   %rbx, %rdi
    0x103ad7cfc <+74>:  callq  *%r13
    0x103ad7cff <+77>:  movq   %rax, %r15

0x103ad7d02 <+80>:  movq   %rbx, %rdi
0x103ad7d05 <+83>:  callq  *0x207d0d(%rip)           ; (void *)0x0000000105e6e9b0: objc_release
0x103ad7d0b <+89>:  testq  %r15, %r15
0x103ad7d0e <+92>:  je     0x103ad7d74               ; <+194> at FBSDKInternalUtility.m:456
0x103ad7d10 <+94>:  cmpq   $0x1, %r15
0x103ad7d14 <+98>:  jne    0x103ad7d2f               ; <+125> at FBSDKInternalUtility.m:454
0x103ad7d16 <+100>: movq   0x537583(%rip), %rdi      ; _transientObjects
0x103ad7d1d <+107>: movq   0x2f9184(%rip), %rsi      ; "removeObjectForKey:"
0x103ad7d24 <+114>: movq   %r14, %rdx
0x103ad7d27 <+117>: callq  *0x207ce3(%rip)           ; (void *)0x0000000105e71000: objc_msgSend
0x103ad7d2d <+123>: jmp    0x103ad7d74               ; <+194> at FBSDKInternalUtility.m:456
0x103ad7d2f <+125>: movq   0x53756a(%rip), %r12      ; _transientObjects
0x103ad7d36 <+132>: movq   0x302fa3(%rip), %rdi      ; (void *)0x0000000105d0cb88: NSNumber
0x103ad7d3d <+139>: decq   %r15
0x103ad7d40 <+142>: movq   0x2f92d9(%rip), %rsi      ; "numberWithUnsignedLong:"
0x103ad7d47 <+149>: movq   %r15, %rdx
0x103ad7d4a <+152>: callq  *%r13
0x103ad7d4d <+155>: movq   %rax, %rdi
0x103ad7d50 <+158>: callq  0x103c2e7e0               ; symbol stub for: objc_retainAutoreleasedReturnValue
0x103ad7d55 <+163>: movq   %rax, %rbx
0x103ad7d58 <+166>: movq   0x2f99e1(%rip), %rsi      ; "setObject:forKey:"
0x103ad7d5f <+173>: movq   %r12, %rdi
0x103ad7d62 <+176>: movq   %rbx, %rdx
0x103ad7d65 <+179>: movq   %r14, %rcx
0x103ad7d68 <+182>: callq  *%r13
0x103ad7d6b <+185>: movq   %rbx, %rdi
0x103ad7d6e <+188>: callq  *0x207ca4(%rip)           ; (void *)0x0000000105e6e9b0: objc_release
0x103ad7d74 <+194>: movq   %r14, %rdi
0x103ad7d77 <+197>: addq   $0x8, %rsp
0x103ad7d7b <+201>: popq   %rbx
0x103ad7d7c <+202>: popq   %r12
0x103ad7d7e <+204>: popq   %r13
0x103ad7d80 <+206>: popq   %r14
0x103ad7d82 <+208>: popq   %r15
0x103ad7d84 <+210>: popq   %rbp
0x103ad7d85 <+211>: jmpq   *0x207c8d(%rip)           ; (void *)0x0000000105e6e9b0: objc_release



Best Answer-推荐答案


我今天也目睹了这次崩溃。在完全相同的位置,即 [FBSDKInternalUtility unregisterTransientObject:] 并在执行完全相同的步骤后(FB 登录 -> 输入凭据 -> 取消按钮 -> 崩溃)。

似乎不仅影响 iOS Facebook SDK v4.5.1,还影响 v4.6 和 v4.1.0。

关于ios facebook登录在取消按钮上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32565568/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4