Не найдено подходящего изображения для Combine в аварийной остановке watchOS 5.2
Информация
Мое приложение падает на Apple Watch, работающих под управлением watchOS 4 и 5. Некоторые новые функции (например, Combine
), зависят от watchOS 6, и использование этих методов явно помечено
@available(watchOSApplicationExtension 6.0.0, *)
Приложение было создано с Xcode 9/10 (я точно забыл, какое именно) и предназначено для watchOS 4. Теперь, когда оно собрано с Xcode 11 и имеет файлы, которые зависят от Combine, оно падает на watchOS 5 Apple Watch.
Ошибка
dyld: Library not loaded: /System/Library/Frameworks/Combine.framework/Combine
Referenced from: /private/var/containers/Bundle/Application/7A361FAB-EBE7-483D-BFD7-E915F15B5B14/Chirp WatchKit App.app/PlugIns/Chirp WatchKit Extension.appex/Chirp WatchKit Extension
Reason: image not found
Очевидно, что Combine
не играет красиво.
Кроме того, он не будет запускаться в симуляторе watchOS 5, и ошибка немного более показательна:
dyld: Library not loaded: /System/Library/Frameworks/Combine.framework/Combine
Referenced from: /Users/willbishop/Library/Developer/CoreSimulator/Devices/C6F36860-E70A-45E6-AC3B-E54DBCEA7C7A/data/Containers/Bundle/Application/1B2EC7C4-731F-4EC1-B23F-09A0B49CD055/Chirp WatchKit App.app/PlugIns/Chirp WatchKit Extension.appex/Chirp WatchKit Extension
Reason: no suitable image found. Did find:
/System/Library/Frameworks/Combine.framework/Combine: mach-o, but wrong architecture
Что я пробовал:
Я подумал, что это может быть, так как у меня был зависимый от watchOS 6 код, смешанный с файлами watchOS 5 Однако после перемещения кода в отдельные файлы проблема остается.
Очистка проекта
Удаление
Derived Data/
Несмотря на это, не повезло. Я предполагаю, что это где-то настройка сборки, но у меня не было бы ни малейшего понятия, какая именно.
Заранее спасибо!
1 ответ
Я считаю, что вам нужно сделать Combine.framework
необязательно связаны. По какой-то причине Combine не может использовать для этого обычный пользовательский интерфейс (пока?), Но, похоже, есть решение в другом потоке.