Swift:iOS 12.2应用启动时崩溃

时间:2019-04-01 07:37:16

标签: ios swift xcode crash

在更新Xcode和Swift 5之后,在iOS 12.2上启动模拟器后,我的应用程序在启动时崩溃了。但是在早期版本的ios(例如12.0)中,该应用程序可以正常运行。我在真实设备ios 12.0.1上启动了该应用程序,并且该应用程序正常运行,然后在iOS设备12.2上启动了该应用程序,并且该应用程序崩溃了

我不知道是否相关,但是在控制台中我收到以下消息:

  

objc [39432]: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    

2 个答案:

答案 0 :(得分:2)

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

  

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

我找不到它发生的原因,但是问题似乎是您或您正在使用的某些依赖项正在使用静态的<Import-Package>org.apache.camel.core.osgi.*;*</Import-Package> 方法,该方法不再被允许。

您可以尝试几种方法

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

thread on twitter也可用于查明问题所在。根据建议,在启动应用程序时尝试添加load,因为这应该为您提供更多线索。

希望有帮助。

答案 1 :(得分:1)

问题已解决,我使用swinject pod,在我替换为的文件pod文件中: pod 'SwinjectStoryboard', :git => 'https://github.com/mdyson/SwinjectStoryboard.git', :branch => 'master'