Установка и использование watchOS в XamarinInstalling 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 требуется OS X Yosemite (10.10) с Xcode 7.watchOS 1 originally required OS X Yosemite (10.10) with Xcode 7.

Предупреждение

обновления watchOS 1 не будет работать после 1 апреля 2018.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

Приложение просмотра состоит из трех проектов: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. Приложение просмотра и его расширение будет объединяться внутри этого основного проекта.The Watch App and its extension will be bundled inside this main project.

  • Проект расширения Watch -это содержит код (например, классы контроллера) для приложения Watch.Watch Extension project - This contains the code (such as Controller classes) for the Watch App.

  • Проект приложения Watch -это содержит файл раскадровки пользовательского интерфейса с ресурсами пользовательского интерфейса для приложения Watch.Watch App project - This contains the User Interface storyboard file with all the UI resources for the Watch App.

Пример каталога контрольного значения Kit решение выглядит в 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

Не удается создать новое «Контрольные значения решение»... довольно приложение просмотра можно добавить в существующее приложение iOS.You cannot create a new "Watch Solution"... rather you can add a Watch App to an existing iOS application. Выполните следующие действия, чтобы создать приложение просмотра.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 должны включать приложении для Apple 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. Visual Studio для Mac автоматически настраивает ссылки проекта и Info.plist параметры для вас.Visual Studio for Mac automatically configures project references and Info.plist settings for you.

Создание пользовательского интерфейса контрольных значенийCreating the Watch User Interface

Использовании конструктора iOS XamarinUsing the Xamarin iOS Designer

Дважды щелкните приложение watch Interface.storyboard для редактирования с помощью конструктора iOS.Double-click on the watch app's Interface.storyboard to edit using the iOS Designer. Контроллеры интерфейса и элементов управления пользовательского интерфейса можно перетащить на раскадровку в элементов и настроить их с помощью свойства панели: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):

Создание переходов по Ctrl + перетаскивание от кнопки, таблицы или интерфейса контроллера на другой контроллер.Create segues by Ctrl + dragging from a button, table or interface controller onto another interface controller.

С помощью Xcode на компьютере MacUsing Xcode on the Mac

Можно продолжать использовать Xcode для создания пользовательского интерфейса, щелкнув файл Interface.storyboard и выбрав открыть с помощью > конструктора Interface Builder Xcode: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, автоматически добавит переменных экземпляров и действий, создаваемых для 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.

Добавление дополнительных экранов в XcodeAdding Additional Screens in Xcode

При добавлении дополнительных экранов (выходящие в шаблоне по умолчанию) в раскадровку с помощью конструктора Interface Builder Xcode необходимо вручную добавить 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.

Конструктор iOS Xamarin делает это автоматически, вручную действия не требуются.The Xamarin iOS Designer does this automatically, no manual steps are required.

СборкаBuilding

Как и другие проекты iOS построения проекта, содержащего приложение просмотра.A project that includes a watch app builds like other iOS projects. Процесс построения приведет к приложение iPhone (App), который содержит расширение просмотра (.appex), который в свою очередь содержит контрольные значения меньше кода приложение (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

Вы можете запустить приложения watch в симуляторе, с помощью Visual Studio для Mac или Visual Studio (запускается на узел сборки Mac).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 8Xcode 8 support

После установки Xcode 8 (или более поздней версии), Apple Watch симуляторов отделены от iOS симуляторов (в отличие от 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 перейдите к меню и clock циферблате; и использовать оборудования меню, чтобы задать 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. Прокрутки на мыши или сенсорной панели будет имитировать с помощью цифровых корона.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

Необходимо убедиться в проект расширения watch запускаемым проектом перед запуском или отладкой приложения.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.

По умолчанию приложение просмотра запускается в обычном режиме приложения режиме (режим уведомлений или не сразу) из Visual Studio для Mac запуска или Отладка команды.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, 5 iPhone, iPhone 6 и iPhone 6 Plus можно активировать для любого внешнего дисплея Apple Watch - 38 мм или Apple Watch - 42 мм где будет приложения 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.

Примечание

Помните, что на экране Контрольное значение не отображается автоматически в симуляторе iOS при использовании Xcode 6.Remember that the watch screen does not automatically appear in the iOS Simulator when using Xcode 6. Используйте оборудования > внешних отображает меню, чтобы показывать окно контрольных значений.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.

Visual Studio для Mac можно запустить приложение 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

Отладка поддерживается в Visual Studio для Mac и 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. На этом снимке экрана показана точка останова отладки попадании в приложение просмотра:This screenshot shows a debug breakpoint being hit in a watch app:

После запуска инструкций вы получите приложение для Apple watch на iOS Simulator (Watch) .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, ExtensionDelegate, NotificationController, и 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.