簡體   English   中英

Swift:iOS 12.2應用啟動時崩潰

[英]Swift: iOS 12.2 Crash of the app on launch

更新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    

您提到的錯誤非常相關:)

objc [39432]:Swift類擴展和Swift類上的類別不允許具有+ load方法

我找不到發生這種情況的原因,但問題似乎是您或您正在使用的某些依賴項正在使用靜態load方法,該方法不再被允許。

您可以嘗試幾種方法

  1. 檢查代碼中的load功能
  2. 查看您的依賴項,看看是否有任何更新可以解決此問題

Twitter上的線程也可以用於查明問題所在。 根據建議,在啟動應用程序時嘗試添加OBJC_PRINT_LOAD_METHODS=YES ,因為這應該為您提供更多線索。

希望能有所幫助。

問題已經解決了; 我使用Swinject CocoaPod,因此在Podfile中,我用以下命令更新了該Pod的相應行:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM