У меня возникла интересная проблема с watchOS 3
и watchOS 2
. В моем ComplicationController
я хочу поддерживать как watchOS 3
, так и watchOS 2.
. При создании шаблонов осложнений я проверяю, работает ли пользователь watchOS 3
. Если это так, я разрешаю использовать осложнение .ExtraLarge
, иначе этот параметр недоступен.Как сделать быструю проверку доступности на watchOS 3
Я использую синтаксис #available
, но приложение не может даже запустить на watchOS 2
из-за недостающей структуры. Вот мой код:
if #available(watchOSApplicationExtension 3.0, *) {
if complicationFamily == .ExtraLarge {
let extraLarge = CLKComplicationTemplateExtraLargeSimpleText()
extraLarge.textProvider = simpleTextProvider
return extraLarge
} else {
return nil
}
} else {
return nil
}
Когда я бегу на watchOS 2
это ошибка, я получаю:
dyld: Symbol not found: _OBJC_CLASS_$_CLKComplicationTemplateExtraLargeSimpleText
Referenced from: /Users/asdf/Library/Developer/CoreSimulator/Devices/48D00565-3BA5-4851-B249-5818BA060716/data/Containers/Bundle/Application/1ACF1C41-9D9E-4AB6-9D49-767A067AE968/WatchKit App.app/PlugIns/WatchKit Extension.appex/WatchKit Extension
Expected in: /Library/Developer/CoreSimulator/Profiles/Runtimes/watchOS 2.2.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/ClockKit.framework/ClockKit
Кто-нибудь еще были проблемы развертывания и к watchOS 3
и watchOS 2
?