【问题标题】:Swift: iOS 12.2 Crash of the app on launchSwift:iOS 12.2 应用程序在启动时崩溃
【发布时间】:2019-04-01 07:37:15
【问题描述】:

更新 Xcode 和 swift 5 后,在 iOS 12.2 上启动模拟器后,我的应用程序在启动时崩溃。但在早期版本的 ios(如 12.0)中,应用程序可以正常工作。我在真机 ios 12.0.1 上启动应用程序,应用程序运行正常,然后在 iOS 设备 12.2 上启动应用程序,应用程序崩溃

我不知道它是否相关,但在控制台中我有这条消息:

objc[39432]: Swift 类扩展和 Swift 类上的类别 不允许有 +load 方法

然后Xcode重定向到0_abort_with_payload:

    libsystem_kernel.dylib`__abort_with_payload:
    0x11365200c <+0>:  movl   $0x2000209, %eax          ; imm = 0x2000209 
    0x113652011 <+5>:  movq   %rcx, %r10
    0x113652014 <+8>:  syscall 
->  0x113652016 <+10>: jae    0x113652020               ; <+20>
    0x113652018 <+12>: movq   %rax, %rdi
    0x11365201b <+15>: jmp    0x113634457               ; cerror_nocancel
    0x113652020 <+20>: retq   
    0x113652021 <+21>: nop    
    0x113652022 <+22>: nop    
    0x113652023 <+23>: nop    

【问题讨论】:

  • 必须清理和构建项目?
  • 是但不工作..

标签: ios swift xcode crash


【解决方案1】:

你提到的错误非常相关:)

objc[39432]: Swift 类扩展和 Swift 类上的类别不允许有 +load 方法

我找不到它发生的原因,但问题似乎是您,或者您正在使用的某些依赖项正在使用静态load 方法,不再允许。

您可以尝试几件事

  1. 检查load 函数的代码
  2. 查看您的依赖项,看看是否有任何更新可以解决此问题

这个thread on twitter 也可以用来查明问题可能出在哪里。正如建议的那样,在启动应用程序时尝试添加OBJC_PRINT_LOAD_METHODS=YES,因为这应该可以为您提供更多线索。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    问题解决了;我使用 Swinject CocoaPod,所以在 Podfile 中我更新了该 pod 的相应行:

    pod 'SwinjectStoryboard', :git => 'https://github.com/mdyson/SwinjectStoryboard.git', :branch => 'master'`
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      相关资源
      最近更新 更多