설치 및 watchOS에서 Xamarin 사용Installing and Using watchOS in Xamarin

watchOS 4에는 macOS Sierra (10.12) Xcode 9가 함께 필요합니다.watchOS 4 requires macOS Sierra (10.12) with Xcode 9.

watchOS 1에는 원래 Xcode 7을 사용 하 여 OS X Yosemite (10.10) 필요합니다.watchOS 1 originally required OS X Yosemite (10.10) with Xcode 7.

경고

2018 년 4 월 1 일 후 watchOS 1 업데이트를 허용 하지 것입니다합니다.watchOS 1 updates will not be accepted after April 1, 2018. 향후 업데이트에서 watchOS 2를 사용 해야 SDK 이상; 빌드는 watchos 4 SDK 것이 좋습니다.Future updates must use watchOS 2 SDK or later; building with the watchOS 4 SDK is recommended.

프로젝트 구조Project Structure

Watch 앱의 세 프로젝트로 구성 됩니다.A watch app consists of three projects:

  • Xamarin.iOS 앱 프로젝트를 iPhone -일반 iPhone 프로젝트가이, Xamarin.iOS 템플릿 중 하나일 수 있습니다.Xamarin.iOS iPhone app project - This is a normal iPhone project, it can be any of the Xamarin.iOS templates. Watch 앱 및 해당 확장이 기본 프로젝트 내에서 함께 제공 됩니다.The Watch App and its extension will be bundled inside this main project.

  • 조사식 확장 프로젝트 -Watch 앱에 대 한 코드 (예: 컨트롤러 클래스)를 포함 합니다.Watch Extension project - This contains the code (such as Controller classes) for the Watch App.

  • Watch 앱 프로젝트 -Watch 앱에 대 한 모든 UI 리소스를 사용 하 여 사용자 인터페이스 스토리 보드 파일을 포함 합니다.Watch App project - This contains the User Interface storyboard file with all the UI resources for the Watch App.

합니다 조사식 키트 Catalog 예제 Xamarin.Studio에서 다음과 같은 솔루션:The Watch Kit Catalog sample solution looks like this in Xamarin.Studio:

다운로드 및 실행 합니다 WatchKitCatalog 샘플으로 시작 합니다.Download and run the WatchKitCatalog sample to get started. 샘플에서 화면에서 찾을 수 있습니다 합니다 컨트롤 페이지입니다.Screens from the sample can be found on the Controls page.

새 프로젝트 만들기Creating a New Project

수 없습니다. 솔루션을 만들 새 "Watch"... 대신 Watch 앱을 기존 iOS 응용 프로그램에 추가할 수 있습니다.You cannot create a new "Watch Solution"... rather you can add a Watch App to an existing iOS application. Watch 앱을 만들려면 다음이 단계를 수행 합니다.Follow these steps to create a watch app:

  1. 기존 프로젝트에 없는 경우 먼저 선택 파일 > 새 솔루션 iOS 앱을 만듭니다 (예를 들어를 단일 뷰 앱):If you don't have an existing project, first choose File > New Solution and create an iOS app (for example, a Single View App):

  2. IOS 앱이 만들어지면 (또는 기존 iOS 앱을 사용 하려는) 되 면 솔루션을 마우스 오른쪽 단추로 클릭 하 고 선택 추가 > 새 프로젝트 추가... . 에 새 프로젝트 창 선택 watchOS > 앱 > WatchKit 앱:Once the iOS app is created (or you plan to use your existing iOS app), right-click on the solution and choose Add > Add New Project... In the New Project window select watchOS > App > WatchKit App:

  3. 다음 화면에는 iOS 앱 프로젝트는 watch 앱을 포함할지 선택할 수 있습니다.The next screen lets you choose which iOS app project should include the watch app:

  4. 마지막으로 프로젝트를 저장할 위치를 선택 (및 필요에 따라 소스 제어를 사용 하도록 설정):Finally, choose the location to save the project (and optionally enabled source control):

  5. Mac 용 visual Studio에서 자동으로 구성 프로젝트 참조 및 Info.plist 설정 있습니다.Visual Studio for Mac automatically configures project references and Info.plist settings for you.

보기 사용자 인터페이스 만들기Creating the Watch User Interface

Xamarin iOS 디자이너 사용Using the Xamarin iOS Designer

Watch 앱을 두 번 클릭 Interface.storyboard iOS 디자이너를 사용 하 여 편집 합니다.Double-click on the watch app's Interface.storyboard to edit using the iOS Designer. 인터페이스 컨트롤러 및 UI 컨트롤에서 스토리 보드로 끌면 합니다 도구 상자 구성 하 고 사용 하 여를 속성 패드:You can drag interface controllers and UI controls onto the storyboard from the Toolbox and configure them using the Properties pad:

각 새 인터페이스 컨트롤러를 지정 해야는 클래스 선택 하 고 이름을 입력 한 다음는 속성 패드 (이렇게 하면 필요한 만들어집니다 C# 코드 숨김 파일을 자동으로):You should give each new interface controller a Class by selecting it and then entering the name in the Properties pad (this will create the required C# codebehind files automatically):

만들기에서 segue Ctrl + 드래그 다른 인터페이스 컨트롤러에 단추, 테이블 또는 인터페이스 컨트롤러에서.Create segues by Ctrl + dragging from a button, table or interface controller onto another interface controller.

Mac에서 Xcode를 사용 하 여Using Xcode on the Mac

Xcode를 사용 하 여 Interface.storyboard 파일을 마우스 오른쪽 단추로 클릭 하 고 선택 하 여 사용자 인터페이스를 만들려고 할 수 있습니다 연결 > Xcode Interface Builder:You can continue to use Xcode to build your user interface by right-clicking on the Interface.storyboard file and selecting Open With > Xcode Interface Builder:

Xcode를 사용 하는 경우 보통의 경우 watch 앱에 대 한 동일한 단계를 수행 해야 iOS 앱 스토리 보드 (출 선 및 작업을 만드는 등 Ctrl + 드래그.h헤더 파일).If using Xcode, then you should follow the same steps for watch apps as for normal iOS app storyboards (such as creating outlets and actions by Ctrl+dragging into the .h header file).

저장 하면 스토리 보드를 자동으로 추가 하는 Xcode Interface Builder에서 출 선 및 작업을 만들기는 C# . designer.cs 조사식 확장 프로젝트에서 파일.When you save the storyboard in Xcode Interface Builder it will automatically add the outlets and actions you create to the C# .designer.cs files in the watch extension project.

Xcode에서 추가 화면을 추가합니다.Adding Additional Screens in Xcode

Xcode Interface Builder를 사용 하 여 스토리 보드를 기본적으로 서식 파일에 포함 된 항목) (이외 추가 화면을 추가 하면 수동으로 추가 해야 합니다 C# 코드 파일 각각의 새 인터페이스 컨트롤러에 대 한 합니다.When you add additional screens (beyond what is included in the template by default) to your storyboard using Xcode Interface Builder you must manually add the C# code files for each new interface controller.

참조 된 스토리 보드에 새 인터페이스 컨트롤러를 추가 하는 방법에 지침을 고급합니다.Refer to the Advanced instructions on how to add new interface controllers to a storyboard.

Xamarin iOS 디자이너에서는이 자동으로, 수동 단계가 필요 하지 않습니다.The Xamarin iOS Designer does this automatically, no manual steps are required.

빌드Building

다른 iOS 프로젝트와 같은 watch 앱을 포함 하는 프로젝트를 빌드합니다.A project that includes a watch app builds like other iOS projects. 빌드 프로세스에서 코드를 사용 하지 않는 watch 응용 프로그램 (.app)를 포함 하는 watch 확장 (.appex)를 포함 하는 iPhone 응용 프로그램 (.app) 발생 합니다.The building process will result in an iPhone application (.app) that contains a watch extension (.appex), which in turn contains the code-less watch application (.app).

시작Launching

Studio (Mac 빌드 호스트에서 시작) Visual 또는 Mac 용 Visual Studio를 사용 하 여 시뮬레이터에서 watch 앱을 시작할 수 있습니다.You can launch watch apps in the simulator using either Visual Studio for Mac or Visual Studio (starts on the Mac Build Host).

WatchKit 앱을 시작 하는 것에 대 한 두 가지 모드를 가지 있습니다.There are two modes for launching a WatchKit app:

  • 일반 앱 모드 (기본값) 및normal app mode (the default), and
  • 알림 (JSON 형식으로 테스트 알림 페이로드가 필요).Notifications (which requires a test notification payload in JSON format).

Xcode 8 지원Xcode 8 support

Apple Watch 시뮬레이터는 iOS 시뮬레이터에서에서 별도 Xcode 8 (이상)가 설치 되 면 (달리 Xcode 6로 나타난 여기서는 외부 디스플레이).Once Xcode 8 (or later) is installed, Apple Watch simulators are separate from iOS Simulators (unlike Xcode 6, where they appeared as an external display). 시뮬레이터 목록에 표시 됩니다 Watch 앱 프로젝트를 선택 하 고 시작 프로젝트를 만들 때 iOS 시뮬레이터 를 선택할 수 (아래 참조).When you select the Watch App project and make it the startup project, the simulator list will show iOS Simulators to choose from (as shown below).

디버깅을 시작할 때 시뮬레이터 시작 해야-iOS 시뮬레이터 Apple Watch 시뮬레이터입니다.When you start debugging, two simulators should start - the iOS Simulator and the Apple Watch Simulator. 사용 하 여 명령 + Shift + H watch 메뉴 및 시계 화면의;로 이동 하 고 사용 하는 하드웨어 설정 하려면 메뉴를 Force Touch 압력합니다.Use Command+Shift+H to navigate to the watch menu and clock face; and use the Hardware menu to set the Force Touch Pressure. 트랙 패드 또는 마우스에 스크롤 디지털 Crown를 사용 하 여 시뮬레이션 됩니다.Scrolling on the trackpad or mouse will simulate using the Digital Crown.

문제 해결Troubleshooting

에 다음 오류가 표시 됩니다는 응용 프로그램 출력 쌍을 이루는 조사식 없는 시뮬레이터를 시작 하려는 경우:The following error will appear in the Application Output if you try to launch to a simulator that does not have a paired watch:

error MT0000: Unexpected error - Please file a bug report at https://github.com/xamarin/xamarin-macios/issues/new
error HE0020: Could not find a paired Watch device for the iOS device 'iPhone 6'.

가리킵니다 Apple 포럼 기본값 작동 하지 않을 경우 시뮬레이터를 구성 하기 위한 지침은 합니다.Refer to Apple's forums for instructions on configuring the simulators, if the defaults do not work.

Xcode 6 및 watchOS 1Xcode 6 and watchOS 1

확인 해야 합니다 조사식 확장 프로젝트시작 프로젝트 실행 또는 앱을 디버깅 하기 전에 합니다.You must make the watch extension project the Startup Project before running or debugging the app. 시작할 수 없습니다"" 자체 watch 앱 및 iOS 앱을 선택 하면 다음 시작 iOS 시뮬레이터에서에서 정상적으로 합니다.You cannot "start" the watch app itself, and if you choose the iOS app then it will start as normal in the iOS Simulator.

기본적으로 표준에서 watch 앱을 시작 Mac 용 Visual Studio에서 모드 (없습니다 보기 또는 알림 모드) 실행 하거나 디버그 명령입니다.By default a watch app starts in normal app mode (not Glance or Notifications mode) from Visual Studio for Mac's Run or Debug commands.

Xcode 6을 사용 하는 경우 iPhone 5, iPhone 5, 6, iPhone 및 iPhone 6 Plus에 대 한 외부 디스플레이 활성화할 수 있습니다 Apple Watch-(38mm 하거나 Apple Watch-42 mm watch 응용 프로그램 될 위치 표시 됩니다.When using Xcode 6, only the iPhone 5, iPhone 5S, iPhone 6, and iPhone 6 Plus can activate the external display for either Apple Watch - 38mm or Apple Watch - 42mm where the watch applications will be displayed.

참고

Xcode 6을 사용 하는 경우 watch 화면이 iOS 시뮬레이터에서에서 자동으로 표시 되지 않으면 해야 합니다.Remember that the watch screen does not automatically appear in the iOS Simulator when using Xcode 6. 사용 된 하드웨어 > 외부 표시 watch 화면에 표시할 메뉴.Use the Hardware > External Displays menu to show the watch screen.

알림 모드를 시작합니다.Launching Notification Mode

참조 된 알림 페이지 정보에 대 한 코드에서 알림을 처리 하는 방법.Refer to the Notifications page for information how to handle notifications in code.

Mac 용 visual Studio 알림이 watch 앱을 시작할 수 시작 모드 알림에 대 한 합니다.Visual Studio for Mac can start the watch app with a notification startup modes for notifications:

Watch 앱 프로젝트를 마우스 오른쪽 단추로 클릭 하 고 선택 사용 하 여 실행 > 사용자 지정 구성... :Right-click on the watch app project and choose Run With > Custom Configuration...:

열립니다는 사용자 지정 매개 변수 선택할 수 있는 창 알림 (및 JSON 페이로드를 제공) 키를 누릅니다 실행 시뮬레이터에서 watch 앱을 시작 하려면:This opens the Custom Parameters window where you can select Notification (and provide a JSON payload), then press Run to start the watch app in the simulator:

디버깅Debugging

Mac 용 Visual Studio 및 Visual Studio에서 디버깅이 지원 됩니다.Debugging is supported in both Visual Studio for Mac and Visual Studio. 알림 모드에서 디버깅 하는 경우 알림 JSON 파일을 제공 해야 합니다.Remember to supply a notification JSON file when debugging in notifications mode. 이 스크린샷은 watch 앱에 도달 하는 디버그 중단점을 보여 줍니다.This screenshot shows a debug breakpoint being hit in a watch app:

시작 지침을 따른 후 결국 watch 앱을 실행 합니다 iOS 시뮬레이터 (감시) 합니다.After following the launch instructions you will end up with your watch app running on the iOS Simulator (Watch). 알림 모드를 선택할 수 있습니다 디버그 > 시스템 로그 열기 (CMD + / )를 사용 하 고 Console.WriteLine 코드에서.For the notification mode you can select Debug > Open System Log (CMD + /) and use Console.WriteLine in your code.

수명 주기 이벤트 처리기를 디버깅합니다.Debugging Lifecycle Event Handlers

WatchOS 템플릿 파일 (같은 InterfaceController, ExtensionDelegateNotificationController, 및 ComplicationController) 이미 구현 하는 필수 수명 주기 메서드를 사용 하 여 제공 합니다.The watchOS template files (such as InterfaceController, ExtensionDelegate, NotificationController, and ComplicationController) come with their required lifecycle methods already implemented. 추가 Console.WriteLine 호출과 읽기 합니다 응용 프로그램 출력 이벤트 수명 주기를 더 잘 이해 하려면.Add Console.WriteLine calls and read the Application Output to better understand the event lifecycle.