Публикация приложений. Расширенное взаимодействие с облачными интерфейсами
Приложение написано, теперь настало время его опубликовать. Но чтобы приступить к публикации, необходимо выполнить ряд действий, которые позволят подготовить пакет для успешного прохождения сертификации.
Первым делом необходимо определиться с возможностями приложения. Если приложение будет получать доступ к ресурсам пользователя, аппаратным возможностям платформы и внешним устройствам, то возникает необходимость указать все требуемые возможности в манифесте приложения. Для этого можно воспользоваться редактором манифеста и выбрать все необходимые возможности на вкладке Capabilities. Если Вы решили редактировать файл манифеста в обычном текстовом редакторе, можно воспользоваться одноименным разделом:
<Capabilities> <Capability Name="internetClient" /> <DeviceCapability Name="webcam" /> </Capabilities>
Рассмотрим, какие возможности можно указать в редакторе манифеста и для чего они используются:
- Documents Library (documentsLibrary) - мы писали об этой возможности в прошлой главе. Библиотека Documents является одним из хранилищ, ссылку на которое можно получить через класс KnownFolders. При этом программный доступ к файлам можно получить только в том случае, если их типы (расширения) заявлены в виде расширения File Type Associations, которое устанавливается в том же манифесте. Это сделано специально, чтобы приложение не могло перебирать все типы файлов и каким-то образом вредить пользователю;
- Music Library (musicLibrary) - эта возможность позволяет получить доступ к библиотеке Music;
- Pictures Library (picturesLibrary) - эта возможность позволяет получить доступ к библиотеке Pictures;
- Videos Library (videosLibrary) - эта возможность позволяет получить доступ к библиотеке Videos;
- Microphone (microphone) - позволяет получить доступ к микрофону;
- Webcam (webcam) - пример работы этой возможности представлен в главе, в которой описана работа с медиа. Позволяет получить доступ к камере;
- Removable Storage (removableStorage) - позволяет получить программный доступ к файлам на внешних устройствах. При этом принцип работы такой же, как и для Documents библиотеки - доступны только файлы заявленных расширений;
- Location (location) -- позволяет получить доступ к механизмам определения местоположения пользователя (через сеть оператора, WiFi или GPS датчик);
- Proximity (proximity) - эта возможность позволяет взаимодействовать с другими устройствами, находящимися в непосредственной близости. При этом может использоваться Bluetooth, Wi Fi или прямое подключение через кабель;
- Internet and public networks (internetClient и internetClientServer) - возможность позволяет использовать исходящее соединение (или входящее и исходящее) для взаимодействия с сервером;
- Text messaging or SMS (sms) - предоставляет программный доступ к устройству, которое может отправлять SMS;
- Domain credentials (enterpriseAuthentication) - эта возможность позволяет взаимодействовать с ресурсами в корпоративном окружении, используя данные аутентификации пользователя;
- Home and work networks (privateNetworkClientServer) - позволяет получить доступ к домашней сети (ресурсам, которые открыты для доступа);
- Certifi cates (sharedUserCertifi cates) - предоставляет доступ к сертификатам пользователя.
Указав все возможности приложения, можно перейти к декларациям расширений. В нескольких лекциях упоминалось о контактах, которые может устанавливать приложение с системой или с другим приложением. Для того, чтобы ОС Windows 8 четко могла определять, какие контакты поддерживает приложение, необходимо задекларировать все его расширения. Вот список возможных расширений:
- Account Picture Provider - это расширение позволяет использовать приложение для установки изображения, ассоциированного с профилем прользователя. Это можно делать только в том случае, если приложение позволяет создавать изображения с помощью камеры и дополняет его какими-то эффектами;
- AutoPlay Content - если Ваше приложение позволяет работать с контентом, размещенном на DVD носителях, картах памяти и т. д., то данное расширение можно использовать для отображения приложения в списке, отображаемом при вставке нового носителя;
- AutoPlay Device - у пользователя появляется возможность активировать приложение при подключении нового внешнего устройства;
- Background Tasks - это расширение позволяет указать имя библиотеки в приложении (точку входа), чтобы обеспечить запуск одной или нескольких задач в фоне;
- Camera Settings - позволяет приложению заменить стандартное окно настроек камеры своим собственным;
- Certificates - позволяет приложению установить сертификат, чтобы использовать его для внутренних целей;
- Contact Picker - регистрирует Ваше приложение как один из источников контактов, предоставляя к ним доступ из других приложений;
- File Open Picker - регистрирует Ваше приложение как источник файлов для других приложений;
- File Save Picker - регистрирует возможность приложения принимать внешние файлы для последующей работы в стандартном режиме (после запуска);
- File Type Associations - позволяет настроить типы файлов, с которыми приложение ассоциировано;
- Game Explorer - регистрирует рейтинг приложения, который используется в службе родительского контроля Windows и позволяет родителям блокировать доступ к некоторым приложениям для детей;
- Print Task Settings - позволяет приложение заменить стандартное окно по настройке печати своим собственным;
- Protocol - регистрирует URL-протокол, используемый приложением:
- Search - регистрирует приложение как предоставляющее механизм поиска, который интегрируется с панелью операционной системы;
- Share Target - настроив эту декларацию, можно сделать приложение потенциальным потребителем данных, которые предоставляют другие приложения через пункт Share.
После того, как Вы выбрали возможности и декларации, а также настроили пиктограммы, экран-заставку, поддерживаемую ориентацию дисплея при запуске, можно переходить к подписи пакета сертификатом.
Подписание пакета
После создания пакета его необходимо подписать сертификатом, чтобы гарантировать его целостность и принадлежность организации или пользователю. Сертификат генерируется автоматически, если используете Visual Studio, но можете использовать и свой сертификат. Для этого можно воспользоваться вкладкой Packaging редактора манифеста:
Сгенерированный сертификат можно найти в каталоге Вашего проекта. Из него выделяется сертификат, содержащий только открытый ключ, который необходимо будет использовать при развертывании пакета.
Локализация манифеста
В одной из лекций рассматривали, как можно локализовать приложение. Логично, что, если мы поставляем приложение на разные рынки, то необходимо локализовать не только контент, но и манифест приложения, ведь он содержит заголовок, описание и другие параметры, которые могут зависеть от страны происхождения приложения, выбранной пользователем. Манифест приложения локализуется очень просто - достаточно внести в манифест ссылку на ресурсы:
<Properties> <Property> <DisplayName>ms-resource:dName</DisplayName> <Description>ms-resource:dDescription</Description> <Logo>tile.png</Logo> </Property> </Properties>
Как видно из примера, используется специальное расширение ms-resource, которое указывает, что значение необходимо взять из активного файла ресурсов с заданным ключом.
Тестирование пакета
Тестирование приложения можно разбить на несколько этапов. Но одним из завершающих этапов является использование утилиты Windows App Certification Kit, которая устанавливается вместе с Windows 8 SDK. Данная утилита позволит проверить приложение в автоматическом режиме по многим параметрам (начиная от времени запуска и заканчивая списком возможностей) и это первое, что будет делаться, когда приложение отправится на сертификацию.
Запустив утилиту, можно увидеть, что она достаточно функциональна. Но все таки, необходимо выбирать раздел Validate Metro style App:
Утилита сама найдет установленные приложения в Вашей системе (Launch- контракт) и предложит протестировать одно из них:
После этого утилита начинает многократно запускать Ваше приложение и собирать статистику. В конечном итоге Вы должны получить отчет о том, готово ли ваше приложение к публикации или нужно поработать над устранением проблем: