2016-09-13 3 views
3

watchOS 3watchOS 2과 관련된 흥미로운 문제가 있습니다. 내에서 ComplicationControllerwatchOS 3watchOS 2.을 지원하고 싶습니다. 사용자가 watchOS 3을 실행 중인지 확인하고있는 합병증 템플릿을 만들 때. 그가 그렇다면 나는 .ExtraLarge의 합병증을 사용할 수 있습니다. 그렇지 않으면이 옵션을 사용할 수 없습니다.watchOS 3에서 신속한 가용성 점검 방법

저는 #available 구문을 사용하고 있는데, 누락 된 프레임 워크로 인해 앱이 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 3watchOS 2 모두에 배포 문제가 있었 : 나는 watchOS 2에서 실행하면

if #available(watchOSApplicationExtension 3.0, *) { 
    if complicationFamily == .ExtraLarge { 
     let extraLarge = CLKComplicationTemplateExtraLargeSimpleText() 
     extraLarge.textProvider = simpleTextProvider 

     return extraLarge 
    } else { 
     return nil 
    } 
} else { 
    return nil 
} 

이 내가 오류는 다음과 같습니다 여기 내 코드는?

답변

0

Apple 개발자 포럼의 게시물을 통해 알게되었습니다. 연결된 바이너리에 ClockKit.framework을 추가하고 상태를 Optional으로 설정해야했습니다. 이제 모든 것이 watchOS 2에서 예상대로 작동합니다.

여기에 게시물이 있습니다. https://forums.developer.apple.com/thread/61712