Swift: iOS 12.2 Сбой приложения при запуске - PullRequest
1 голос
/ 01 апреля 2019

после обновления 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    

Ответы [ 2 ]

2 голосов
/ 01 апреля 2019

Ошибка, о которой вы упомянули, очень связана:)

objc [39432]: Расширения и категории классов Swift в классах Swift не могут иметь методы + load

Я не могу найти причину, по которой это происходит, но, похоже, проблема в том, что вы или какая-то зависимость, которую вы используете, использует статический метод load, который больше не разрешен.

Естьпару вещей, которые вы можете попробовать

  1. Проверьте ваш код на наличие load функций
  2. Просмотрите ваши зависимости и посмотрите, есть ли какие-либо из них, которые могут решить эту проблему

Этот поток в твиттере также можно использовать для определения места проблемы.Как предлагается, попробуйте добавить OBJC_PRINT_LOAD_METHODS=YES при запуске приложения, так как это должно дать вам еще несколько подсказок.

Надеюсь, что это поможет.

1 голос
/ 01 апреля 2019

Проблема решена, я использую модуль swinject, в файле файла pod я заменяю на: pod 'SwinjectStoryboard', :git => 'https://github.com/mdyson/SwinjectStoryboard.git', :branch => 'master'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...