Підготовка додатків до публікації Windows Runtime

Отже, додаток написано, тепер настав час його опублікувати Але щоб приступити до публікації, необхідно виконати ряд дій, які дозволять підготувати пакет для успішного проходження сертифікації

Насамперед необхідно визначитися з можливостями програми Якщо Ваша програма буде отримувати доступ до ресурсів користувача, апаратних можливостей платформи та зовнішніх пристроїв, то виникає необхідність вказати всі необхідні можливості в маніфесті додатки Для цього можна скористатися редактором маніфесту і вибрати всі необхідні можливості на вкладціCapabilities Якщо Ви вирішили редагувати файл маніфесту в звичайному текстовому редакторі, можна скористатися однойменною розділом:

&ltCapabilities&gt

&ltCapability Name=&quotinternetClient&quot /&gt

&ltDeviceCapability Name=&quotwebcam&quot /&gt

&lt/Capabilities&gt

Розглянемо, які можливості можна вказати в редакторі маніфесту і для чого вони використовуються:

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Documents Library (documentsLibrary) – Ми писали про цю можливість в минулому розділі Бібліотека Documents є одним зі сховищ, посилання на яке можна отримати через клас KnownFolders При цьому програмний доступ до файлів можна отримати тільки в тому випадку, якщо їх типи (розширення) заявлені у вигляді розширення File Type Associations, яке встановлюється в тому ж маніфесті Це зроблено спеціально, щоб програма не могло перебирати всі типи файлів і якимось чином шкодити користувачеві

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Music Library (musicLibrary) – Ця можливість дозволяє отримати доступ до бібліотеки Music

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Pictures Library (picturesLibrary) – Ця можливість дозволяє отримати доступ до бібліотеки Pictures

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Videos Library (videosLibrary) – Ця можливість дозволяє отримати доступ до бібліотеки Videos

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Microphone (microphone) – Дозволяє отримати доступ до мікрофона

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Webcam (webcam) – Приклад роботи цієї можливості представлений в розділі, в якій описана робота з медіа Дозволяє отримати доступ до камери

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Removable    Storage    (removableStorage)   – Дозволяє отримати програмний доступ до файлів на зовнішніх пристроях При цьому принцип роботи такий же, як і для Documents бібліотеки – доступні тільки файли заявлених розширень

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Location   (location)  – Дозволяє отримати доступ до механізмів визначення місця розташування користувача (через мережу оператора, WiFi або GPS датчик)

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Proximity (proximity) – Ця можливість дозволяє взаємодіяти з іншими пристроями, що знаходяться в безпосередній близькості При цьому може використовуватися Bluetooth, Wi Fi або пряме підключення через кабель

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Internet and public networks (internetClient і internetClientServer) – Можливість дозволяє використовувати вихідне зєднання (або вхідний та вихідний) для взаємодії з сервером

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Text messaging or SMS (sms) – Надає програмний доступ до пристрою, який може відправляти SMS

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Domain  credentials   (enterpriseAuthentication)   – Ця можливість дозволяє взаємодіяти з ресурсами в корпоративному оточенні, використовуючи дані аутентифікації користувача

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Home and work networks (privateNetworkClientServer) – Дозволяє отримати доступ до домашньої мережі (ресурсам, які відкриті для доступу)

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Certificates (sharedUserCertificates) – Надає доступ до серти-

катам користувача

Слід мати на увазі, що всі можливості, які потрібні додаткам,

користувач буде бачити в момент завантаження програми з магазину

Вказавши всі можливості програми, можна перейти до декларацій розширень У кількох розділах ми згадували про контакти, які може встановлювати додаток з системою або з іншим додатком Так от, щоб ОС Windows 8 чітко могла визначати, які контакти підтримує додаток, необхідно задекларувати всі його розширення Ось список можливих розширень:

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Account Picture Provider – Це розширення дозволяє використовувати Ваше додаток для установки зображення, асоційованого з профілем користувача Це можна робити тільки в тому випадку, якщо додаток дозволяє створювати зображення за допомогою камери і доповнює його якимись ефектами

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp AutoPlay   Content   – Якщо Ваше додаток дозволяє працювати з контентом, розміщеному на DVD носіях, картах памяті і т д, то дане розширення можна використовувати для відображення програми в списку, що відображається при вставці нового носія

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp AutoPlay Device – У користувача зявляється можливість активувати Ваш додаток при підключенні нового зовнішнього пристрою

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Background Tasks – Це розширення дозволяє вказати імя бібліотеки в додатку (точку входу), щоб забезпечити запуск однієї або кількох завдань в тлі

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Camera Settings – Дозволяє додатку замінити стандартне вікно налаштувань камери своїм власним

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Certificates  – Дозволяє додатку встановити сертифікат, щоб використовувати його для внутрішніх потреб

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Contact Picker – Реєструє Ваше додаток як одне з джерел контактів, надаючи до них доступ з інших додатків

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp File Open Picker – Реєструє Ваше додаток як джерело файлів для інших додатків

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp File Save Picker – Реєструє можливість додатка приймати зовнішні файли для подальшої роботи в стандартному режимі (після запуску)

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp File Type Associations – Дозволяє налаштувати типи файлів, з якими додаток асоційоване

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Game    Explorer    – Реєструє рейтинг програми, який використовується в службі батьківського контролю Windows і дозволяє батькам блокувати доступ до деяких додаткам для дітей

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Print Task Settings – Дозволяє додаток замінити стандартне вікно з налаштування друку своїм власним

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Protocol – Реєструє URL-протокол, використовуваний додатком:

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Search  – Реєструє додаток як надає механізм пошуку, який інтегрується з панеллю операційної системи

·&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Share Target – Налаштувавши цю декларацію, можна зробити додаток потенційним споживачем даних, які надають інші програми через пункт Share

Після того, як Ви вибрали можливості та декларації, а також налаштували піктограми, екран-заставку, підтримувану орієнтацію дисплея при запуску, можна переходити до підпису пакета сертифікатом

Після створення пакета його необхідно підписати сертифікатом, щоб гарантувати його цілісність і приналежність організації або користувачеві Сертифікат генерується автоматично, якщо Ви використовуєте Visual Studio, але Ви можете використовувати і свій сертифікат Для цього можна скористатися вкладкою Packaging редактора маніфесту:

Рис 111

Згенерований сертифікат можна знайти в каталозі Вашого проекту З нього виділяється сертифікат, що містить тільки відкритий ключ, який необхідно буде використовувати при розгортанні пакета

В одній із глав ми розглядали, як можна локалізувати додаток Логічно, що, якщо ми поставляємо додаток на різні ринки, то необхідно локалізувати не тільки контент, а й маніфест додатки, адже він містить заголовок, опис і інші параметри, які можуть залежати від країни походження додатки, вибраної користувачем Маніфест додатки локалізується дуже просто – достатньо внести в маніфест посилання на ресурси:

&ltProperties&gt

&ltProperty&gt

&ltDisplayName&gtms-resource:dName&lt/DisplayName&gt

&ltDescription&gtms-resource:dDescription&lt/Description&gt

&ltLogo&gttilepng&lt/Logo&gt

&lt/Property&gt

&lt/Properties&gt

Як видно з прикладу, використовується спеціальне розширенняms-resource, Яке вказує, що значення необхідно взяти з активного файлу ресурсів із заданим ключем

Тестування програми можна розбити на кілька етапів Але одним із завершальних етапів є використання утиліти Windows App Certification Kit, яка встановлюється разом з Windows 8 SDK Дана утиліта дозволить перевірити ваш додаток в автоматичному режимі за багатьма параметрами (починаючи від часу запуску і закінчуючи списком можливостей) і це перше, що буде робитися, коли Ваша програма відправиться на сертифікацію

Запустивши утиліту, Ви зможете побачити, що вона досить функціональна Але в нашому випадку необхідно вибирати розділ Validate Metro style App:

Рис 112

Утиліта сама знайде встановлені додатки у Вашій системі (Launch-

контракт) і запропонує протестувати одне з них:

Рис 113

Після цього утиліта починає багаторазово запускати Ваше додаток і збирати статистику Зрештою Ви повинні отримати звіт про те, чи готове ваше додаток до публікації або потрібно попрацювати над усуненням проблем:

Рис 114

Створюючи пакет для локального тестування або для публікації в Windows Store, Ви можете скористатися таким пунктом меню, якStore-&gtCreate App Package Оскільки у розробника не завжди є прямий доступ в Store, а тестувати додаток необхідно на різних машинах, передбачено два варіанти:

Рис 115

Перший варіант дозволяє використовувати профіль в Store для створення пакета, відповідного для публікації (як видавця встановлюється імя з профілю в Store) Другий варіант не вимагає входу в Store і дозволяє створити пакет для локального використання

Якщо Ви вибираєте перший варіант, то повинні авторизуватися в Store, але в будь-якому випадку майстер дозволяє вибрати версію і місце для запису Вашого пакета:

Рис 116

Якщо Ви створюєте пакет для локального використання, основними є три файли: сертифікат з відкритим ключем ( Cer), пакет з додатком ( Appx) і bat-файл, який містить команди по установці програми на локальний компютер Все це можна перенести на будь-який ПК під управлінням Windows 8 і приступити до тестування Вашого застосування

ЗауваженняТестова машина повинна бути активована для розробки

Сергій Лутай, Сергій Байдачний, Windows 8 для C # розробників

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*