草庐IT

ios facebook登录在取消按钮上崩溃

coder 2024-01-18 原文

重现错误的步骤:

  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

最佳答案

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

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

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

有关ios facebook登录在取消按钮上崩溃的更多相关文章

  1. ruby - 检查 "command"的输出应该包含 NilClass 的意外崩溃 - 2

    为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar

  2. Ruby Readline 在向上箭头上使控制台崩溃 - 2

    当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby​​安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少

  3. ruby-on-rails - Rails 单选按钮 - 模型中多列的一种选择 - 2

    我希望用户从一个模型的三个选项中选择一个。即我有一个模型视频,可以被评为正面/负面/未知目前我有三列bool值(pos/neg/unknown)。这是处理这种情况的最佳方式吗?为此,表单应该是什么样的?目前我有类似的东西但显然它允许多项选择,而我试图将它限制为只有一个..怎么办? 最佳答案 如果要使用字符串列,让我们说rating。然后在你的表单中:#...#...它只允许一个选择编辑完全相同但使用radio_button_tag: 关于ruby-on-rails-Rails单选按钮-模

  4. ruby-on-rails - 如何从按钮或链接单击的 View 调用 Rails 方法 - 2

    基本上,我试图在用户单击链接(或按钮或某种类型的交互元素)时执行Rails方法。我试着把它放在View中:但这似乎没有用。它最终只是在用户甚至没有点击“添加”链接的情况下调用该函数。我也用link_to试过了,但也没用。我开始认为没有一种干净的方法可以做到这一点。无论如何,感谢您的帮助。附言。我在ApplicationController中定义了该方法,它是一个辅助方法。 最佳答案 View和Controller是相互独立的。为了使链接在Controller内执行函数调用,您需要对应用程序中的端点执行ajax调用。该路由应调用rub

  5. ruby-on-rails - 如何在 Rails 中添加禁用的提交按钮 - 2

    我在ruby​​表单中有一个提交按钮f.submitbtn_text,class:"btnbtn-onemgt12mgb12",id:"btn_id"我想在不使用任何javascript的情况下通过ruby​​禁用此按钮 最佳答案 添加disabled:true选项。f.submitbtn_text,class:"btnbtn-onemgt12mgb12",id:"btn_id",disabled:true 关于ruby-on-rails-如何在Rails中添加禁用的提交按钮,我们在St

  6. ruby-on-rails - 从 ActiveAdmin has_many 表单助手中删除 "Add new"按钮 - 2

    我在事件管理员编辑页面中有嵌套资源,但我只想允许管理员编辑现有资源的内容,而不是添加新的嵌套资源。我的代码看起来像这样:formdo|f|f.inputsdof.input:authorf.input:contentf.has_many:commentsdo|comment_form|comment_form.input:contentcomment_form.input:_destroy,as::boolean,required:false,label:'Remove'endendf.actionsend但它在输入下添加了“添加新评论”按钮。我怎样才能禁用它,并只为主窗体保留f.ac

  7. ruby - 使用 Ruby 和 Mechanize 登录网站 - 2

    我需要从站点抓取数据,但它需要我先登录。我一直在使用hpricot成功地抓取其他网站,但我是使用mechanize的新手,我真的对如何使用它感到困惑。我看到这个例子经常被引用:require'rubygems'require'mechanize'a=Mechanize.newa.get('http://rubyforge.org/')do|page|#Clicktheloginlinklogin_page=a.click(page.link_with(:text=>/LogIn/))#Submittheloginformmy_page=login_page.form_with(:act

  8. ruby-on-rails - 使用用户或管理员模型和 Basecamp 样式子域设计登录 - 2

    我为Devise用户和管理员提供了不同的模型。我也在使用Basecamp风格的子域。除了我需要能够以用户或管理员身份进行身份验证的一些Controller和操作外,一切都运行良好。目前我有authenticate_user!在我的application_controller.rb中设置,对于那些只有管理员才能访问的Controller和操作,我使用skip_before_filter跳过它。不幸的是,我不能简单地指定每个Controller的身份验证要求,因为我仍然需要一些Controller和操作才能被用户或管理员访问。我尝试了一些方法都无济于事。看来,如果我移动authentica

  9. ruby - 如何使用 omniauth/oauth 对每秒登录数进行基准测试? ( ruby +rspec) - 2

    我想用一个(自己的)omniauth提供商来衡量每秒可以登录多少次。我需要了解此omniauth/oauth请求的性能如何,以及此身份验证是否具有可扩展性?到目前为止我得到了什么:defperformance_auth(user_count=10)bm=Benchmark.realtimedouser_count.timesdo|n|forkdoclick_on'Logout'omniauth_config_mock(:provider=>"foo",:uid=>n,:email=>"foo#{n}@example.net")visit"/account/auth/foo/"enden

  10. ruby - 在多个线程中引用类方法会导致自动加载循环依赖崩溃 - 2

    代码:threads=[]Thread.abort_on_exception=truebegin#throwexceptionsinthreadssowecanseethemthreadseputs"EXCEPTION:#{e.inspect}"puts"MESSAGE:#{e.message}"end崩溃:.rvm/gems/ruby-2.1.3@req/gems/activesupport-4.1.5/lib/active_support/dependencies.rb:478:inload_missing_constant':自动加载常量MyClass时检测到循环依赖稍加研究后,

随机推荐