У меня проблемы с приложением, над которым я работал некоторое время. Все было хорошо, пока не сошел с ума и не обновил Xcode до 9.4 (ранее 9.3).
Я использую сторонний фреймворк, скомпилированный на swift 4.0.3. Я отлично работал, но после обновления он не скомпилировался (не могу собрать фреймворк, скомпилированный на 4.0.3 с 4.1). Я скачал и установил Swift 4.0.3 Release Toolchain , и я могу собрать без ошибок.
Однако, когда я запускаю цель на устройстве (iOS 9.0 ipad), она вылетает с dyld`dyld_fatal_error:
dyld`dyld_fatal_error:
0x1fe9008c <+0>: trap
0x1fe90090 <+4>: nop
Консоль выводит это:
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /private/var/containers/Bundle/Application/2E966F50-67E3-4250-858C-382319CD6274/myApp.app/Frameworks/myFramework.framework/myFramework Reason: Incompatible library version: myFramework requires version
1.0.0 or later, but libswiftCore.dylib provides version 0.0.0
Некоторые факты:
Каркас находится в Встроенные двоичные файлы и Связанные фреймворки и библиотеки в разделе General и Связать двоичные файлы с библиотеками и Встроить фреймворки в Фазы сборки.
Это приложение необходимо развернуть на iOS 9.0, и цель развертывания установлена соответствующим образом.
Я снова установил Xcode 9.3, но у меня возникла та же проблема с использованием набора инструментов 4.0.3.
Мои подозрения:
Может ли цепочка инструментов быть повреждена каким-либо образом? Я установил Swift 4.0.3 Выпуск 2017-12-05 (a)
Несмотря на то, что я работаю с набором инструментов 4.0, я могу выбрать только 4.1 и 3.3 в разделе «Компилятор Swift» в настройках сборки. Я предполагаю, что это перезаписано, но не уверен.
Моя главная проблема в том, что, хотя цель развертывания установлена на iOS 9.0, в BASE SDK установлена на 11.3, и она не может выбрать другую. Я не могу найти 9.0 SDK в интернете. Может ли это быть проблемой?
Кроме того, все мои сертификаты действительны и в порядке.
Заранее спасибо, я буду добавлять изменения каждый раз, когда найду что-то новое.