dyld: символ не найден: _OBJC_CLASS_$_CLKFullColorImageProvider работает приложение на симуляторе watchOS 4.2
Я получаю вышеуказанную ошибку при попытке запустить расширение WatchKit на симуляторе watchOS 4.2. Полная ошибка
dyld: Символ не найден: _OBJC_CLASS_$_CLKFullColorImageProvider Ссылка на: /Users/drew/ Библиотека / Разработчик / CoreSimulator / Устройства /029267FA-3A08-4FC7-B3E8-F0D7B0BC15E7/data/Containers-Bundle/Application 7DE2DD770D3D1D1D1D170D1D1D1D1D1D1D170D1D1D1D1D1D1D1D170D1D1D1D1D1D1D1D1D1D170 -8D5470324A94/steps-test WatchKit App.app/PlugIns/steps-test WatchKit Extension.appex/steps-test Расширение WatchKit Ожидается в: /Library/Developer/CoreSimulator/ Профили /Runtime /watchOS 4.2.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/ClockKit.framework/ClockKit
Однако CLKFullColorImageProvider является классом в watchOS 5.0, и код использует этот класс только внутри условной проверки для этой ОС.
if #available(watchOSApplicationExtension 5.0, *) {
let rectangular = CLKComplicationTemplateGraphicRectangularTextGauge()
let complicationImage = UIImage(named: "Complication/Graphic Large Rectangular")!
rectangular.headerImageProvider = CLKFullColorImageProvider(fullColorImage: complicationImage)
let gauge = CLKSimpleGaugeProvider(style: .fill, gaugeColors: [UIColor.cyan,UIColor.blue,UIColor.green], gaugeColorLocations: [0.0,0.5,0.66], fillFraction: 0.75)
rectangular.gaugeProvider = gauge
rectangular.headerTextProvider = CLKSimpleTextProvider(text: "7572 Steps", shortText: "7572")
rectangular.body1TextProvider = CLKSimpleTextProvider(text: "75% of your 10,000 target", shortText: "75%")
handler(rectangular)
}
Я также пытался использовать if #available(watchOS 5.0, *) {
для хорошей меры.
Я видел другие ответы, предлагающие связать инфраструктуру в общих настройках приложения, но как я буду пытаться связать инфраструктуру, которая не включает в себя этот класс, который не подходит для этой проблемы? Тем не менее, я попытался, слабое связывание и прочно связал структуру набора часов, но ошибка все еще сохранялась.
Исследованные ответы dyld: Символ не найден: _MPMoviePlayerPlaybackStateDidChangeNotification - указал на слабое связывание фреймворка.
Получение dyld: Символ не найден: _OBJC_CLASS_$_NSJSONSerialization на IOS4 - похоже, не применяется, так как код вызывает только класс, если он работает на watchOS 5.0 или выше.
Любые указатели в правильном направлении будут с удовольствием приняты.
Спасибо Дрю