Публикация приложения в Windows Store

  • Tutorial
Привет.

Я студент-партнер Microsoft, и в этой статье я хотел бы поделиться с вами своим опытом публикации приложения в Windows Store и рассказать о некоторых особенностях сертификации и публикации.

Об особенностях регистрации учетной записи разработчика Windows Store я рассказывать не буду, потому как об этом уже писали не раз. Например, здесь.

Дикое желание попробовать опубликовать свою игру меня охватило в начале июня.
Естественно, я просто не мог не использовать возможность получить ранний доступ в магазин Windows через AEL (Application Excellence Labs) — лабораторные, которые проходили почти постоянно. После прохождения двух таких лабораторных я получил ключ для регистрации и мог заняться публикацией.

image

Предположим, что вы также уже разработали свое приложение, зарегистрировались в Windows Store и готовы к публикации приложения. Напомню, что не так давно был открыт доступ к бесплатной регистрации в магазине для студентов через DreamSpark, поэтому, тем, кто не заметил этого объявления, я настоятельно рекомендую получить ключ здесь: Dreamspark.

Манифест приложения


Итак, очень важно понимать, что перед публикацией приложения в магазин, нужно правильно настроить его манифест. Это — самая важная вещь в вашем приложении (кроме самого приложения, конечно), которой нужно уделить особое внимание.

Интерфейс приложения

Открываем файл package.appxmanifest в проекте и на первой вкладке «Интерфейс приложения» видим следующее:


Здесь необходимо указать имя вашего приложения, входную точку при его запуске, доступные языки, поддерживаемые ориентации и все изображения, которые будут использоваться приложением. Это и значок на плитке (широкий и/или мелкий) и splashscreen, который отображается при запуске приложения и др.
Напротив каждого поля указаны также необходимые размеры. Эти изображения должны быть подогнаны именно под эти размеры, иначе манифест их просто не примет.

Возможности



Здесь нужно указать все, что приложению необходимо для корректной работы. Это также потребуется для успешного прохождения WACK (об этом чуть позже) и для успешного прохождения сертификации приложения в магазин.
В моем случае игра использует только подключение к сети Интернет, для того, чтобы синхронизировать игровой прогресс с учетной записью Microsoft пользователя. Поэтому на этой вкладке у меня стоит только одна галочка напротив пункта «Интернет (клиент)».

Упаковка



Это самая важная вкладка в манифесте. Именно в ней указывается информация о привязке приложения в магазину и использовании сертификата (тестового или зарегистрированного в Windows Store).

Тестовый сертификат приложения

Для того, чтобы можно было протестировать приложение на своем комьютере или отправить другому человеку в виде пакета установки, можно создать тестовый сертификат, который не будет привязан к вашей учетной записи в Windows Store.



В этом случае в проекте появится новый файл сертификата AppName_TemporaryKey.pfx, который и позволит пользоваться приложение в тестовом режиме. В этом случае будут недоступны возможности реальной покупки приложения или инапов, но этот вопрос решается эмулированием покупки при разработке приложения. Об этом много ресурсов на MSDN.

Подготовка к публикации в магазин Windows


Итак, приложение готово, учетная запись зарегистрирована. Начинаем работу по публикации в магазин.
Первым делом, идем в Интернет на портал разработчиков Windows 8 в Информационную панель приложений по ссылке:
appdev.microsoft.com/StorePortals/ru-ru

Если вы никогда раньше не публиковали приложение в Windows Store, то эта страничка будет выглядеть примерно так…



… только в ней не будет двух приложений, как у меня.

Выбираем слева в меню «Отправить приложение» и подготавливаем магазин к загрузке.



На данный момент важен только один пункт — Имя приложения. Нужно в него перейти и зарезервировать новое имя для своего приложения. Или несколько, если вы планируете публиковать его в магазинах разных стран, и одного имени для этого недостаточно.

Возвращаемся в Visual Studio к приложению

Теперь, когда мы зарезервировали новое имя для нашего будущего приложения, пора связать его с нашим реальным приложением и получить сертификат из Windows Store.
В контекстном меню проекта (в моем случае Baller) выбираем пункт меню «Магазин» — «Связать приложение с Магазином..».



После этого нам предложат войти под своей учетной записью разработчика для магазина Windows.



Далее откроется окно выбора приложения, в котором и появится имя, которое мы только что зарегистрировали.



В моем случае это окно пусто, поскольку для моего приложения уже раньше были загружены пакеты, а здесь отображаются только «чистые» еще не загруженные приложения. Чтобы я мог связать свое обновленное приложение с тем, что у меня в магазине, мне нужно поставить галочку напротив «Включать имена приложений, для которых уже есть пакеты». Нажимаем «Далее», затем «Связать».
После этой процедуры в проекте появится еще один сертификат AppName_StoreKey.pfx и файл Package.StoreAssociation.xml, в котором дополнительно содержится вся необходимая информация для магазина по стоимости приложения и удовлетворению минимальных требований для публикации в различных странах.

Создание пакета приложения



Следующий шаг — создание пакета приложения, который потребуется для загрузки в магазин.
Вызываем контекстное меню проекта, выбираем «Магазин» — «Создать пакеты приложения..».



Снова авторизуемся как разработчик для магазина Windows и на последнем шаге выбираем папку, в которую хотим поместить пакет приложения, версию приложения и архитектуру процессора, для которой создаем пакет, если приложение подходит не для всех процессоров.

IMP: на будущее, всегда помните, что версия приложения, указанная на этом шаге должна быть обязательно выше версии пакета, уже загруженного в магазин Windows. Также есть некоторые нюансы:
Версия приложения выглядит примерно так: 1.0.0.0. Помните, что пользователи увидят обновление в магазине, только если увеличилась, как минимум, вторая цифра слева (например 1.1.0.0). Третья цифра обозначает номер сборки, четвертая — номер редакции. Если в магазине загружен пакет с номером 1.0.0.0, а вы публикуете пакет 1.0.0.1, то для того, чтобы пользователь увидел изменения, ему нужно будет удалить приложение и загрузить его снова из магазина Windows. Только так. Простыми словами: первые две цифры — для покупателей, вторые две — для разработчиков. Помните это!


Windows Application Certification Kit (WACK)

Нажимаем «Создать». После нажатия на эту кнопку Visual Studio соберет проект в режиме Release и появится окно о том, что пакет успешно создан и дальше можно будет выбрать: или закрыть это окно, или проверить приложение с помощью сертификационной утилиты WACK (Windows App Cert Kit), о которой я говорил раньше.



Я настоятельно рекомендую после создания пакета на всякий случай проверять пакет на прохождение WACK. Утилита проверяет приложение на наличие основных ошибок в приложение: правильность кодировки файлов, соответствие цветов приложения, быстрый запуск на слабых компьютерах (менее 5 секунд), безопасность приложения и еще много другое. Это также даст вам гарантию прохождения в магазин на некоторых стадиях проверки.

После выбора «Запустить WACK» желательно отойти от компьютера на какое-то время и пойти, например, выпить кофе. Проверка занимает около 5 минут, в течение которых приложение будет иногда запускаться, и какие-либо действий с ним в этот момент выполнять категорически запрещены. Любое взаимодействие с ним или высокая нагруженность процессора во время работы WACK'а может зафейлить проверку. По личному опыту скажу, что однажды, я не прошел WACK потому что моя игра на слабом компьютере запустилась на за 5 секунд, а за 5,007. Пришлось доделывать, потому что НЕ прохождение WACK — это абсолютная гарантия того, что приложение НЕ пройдет в магазин.

После выполнения проверки приложения и глотка кофе, можно порадоваться результату и подготовиться к последнему шагу…



… или погрустить немного…



… и посмотреть подробный отчет о том, что не так в приложении и подумать, как это можно исправить.



Публикация в магазин Windows


Итак, пакеты приложения собраны, WACK успешно пройден, осталось пройти последнюю стадию — сертификацию приложения в магазин Windows.

Первый пункт из списка (Имя приложения), насколько вы помните, мы уже прошли. Осталось заполнить остальные. Все по-порядку:

Сведения о продажах

Здесь нужно указать стоимость приложения, пробный период (если приложение платное), страны, где вы хотите опубликовать приложение, категорию, и также необходимые требования к оборудованию, если это — игра.

Дополнительные возможности

Здесь указываются возможности подключения приложения к службам Live Connect и push-уведомления, а также создание кодов продукта и их стоимость для покупки инапов.

Возрастная оценка и сертификаты оценки

В этом пункте нужно указать аудиторию, для которой предназначено ваше приложение. Также для некоторых стран необходимо будет загрузить специально созданные сертификаты оценки приложения с явным указанием того, что оно в себе содержит (этот пункт проверяет специальный тестер, которые проверяет контент на соответствие требованиям).

Шифрование

Здесь нужно указать использует ваше приложение шифрование или нет, и также вам нужно будет поставить галочку в согласие о том, что ваше приложение подлежит широкому распространению во всех юрисдикциях без государственной экспертизы, утверждения, лицензии или технологических ограничений.

Пакеты

Важнейший пункт при заполнении формы приложения — это «Пакеты». На этой странице нужно загрузить созданные вами ранее пакет приложения (файл с расширением .appxupload). Магазин автоматически проверит его и загрузит информацию о языках приложения, поддержки разных архитектур процессора, сертификаты привязки к магазину и версию приложения. Пакет с меньшей версией, чем тот, который уже был сертифицирован ранее, загружен не будет.

Описание

Пожалуй, самый важный пункт после загрузки пакета — это «Описание». Если вы создали многоязычное приложение, то вам необходимо будет заполнить две формы на обоих поддерживаемых приложением языках. Выбор разноязычных форм появляется автоматически после проверки загруженного пакета.
Для каждого языка необходимо заполнить описание, возможности приложения, описание обновления (если это обновление ранее загруженного приложения), сведения об авторских правах, контактную информацию и хотя бы один снимок экрана для отображении в магазине Windows.

IMP: еще один очень важный момент. Если у вас многоязычное приложение, то в каждую форму нужно ОБЯЗАТЕЛЬНО загрузить снимок экрана на том, языке, на котором заполняется анкета! Например, моя игра Baller локализована на русский и английский языки, и при заполнении анкеты в английской форме я загрузил снимок игры работающей на английском языке, а при заполнении русской — на русском.

Дальше, необязательно, но крайне желательно, если вы делаете хорошее приложение, которое предназначено для широкой публики, то укажите изображения для рекламной акции, которые будут отображаться в виде прямоугольных и квадратных плиток в приложении Windows Store. Разрешения там также указаны.
Вы также можете указать дополнительно рекомендуемое оборудование, которое будет отображаться на странице сведений приложения, веб-сайт и обязательно контактные данные службы поддержки (e-mail), которые пользователи смогут использовать, чтобы написать свои предложения, пожелания и благодарности.

Последним пунктом стоит также «Политика конфиденциальности», на который я также хотел бы обратить внимание. Если ваше приложение ходит в Интернет, неважно зачем, будь то синхронизация данных или чтение RSS с какого-либо портала, нужно необходимо создать страничку в интернете с описанием того, что вы не берете данные пользователя и не распространяете их. Такой же пункт должен быть обязательно в самом приложении в настройках. Как вы знаете, есть такие чудо-кнопки, которые всегда находятся в правом меню. Вот при нажатии «Настройки» в вашем приложении, пользователь должен обязательно увидеть пункт «Privacy Policy» или «Политика конфиденциальности», которая хорошо, если ведет на ту же самую страницу.
Пример моей такой странички, можете посмотреть здесь.

Финал


После того, как вы заполните все поля (важно пройтись ОБЯЗАТЕЛЬНО по всем пунктам, чтобы везде стояли галочки) можно выбрать пункт «Отправить на сертификацию», после чего вам на e-mail придет письмо о начале сертификации и приложение появится в информационной панели и вы сможете отслеживать состояние сертификации:



Первые три пункта обычно проходят в течение нескольких часов, а вот четвертый занимает действительно много времени. На этом пункте за дело берется специальный человек-тестер, который первым делом проверяет приложение средствами WACK. Если оно его не проходит, приложение автоматически фейлится и возвращается вам на доработку с указанием ошибок. Так что, повторюсь: «Обязательно проверяйте паке средствами WACK, чтобы сэкономить себе драгоценные часы сертификации».

Если с приложением все хорошо и тестер его одобряет, приложение подготавливается к выпуску, создается уникальная страница приложения в интернете для всех стран, и затем оно публикуется в магазин.
Какое-то время страница возможно будет недоступна, это нормально.
Вот пример моей игры Baller в Интернете
— на русском: apps.microsoft.com/webpdp/ru-ru/app/baller/21c45e96-db83-4dad-9221-95c79fed713d
— и на английском: apps.microsoft.com/webpdp/en-us/app/baller/21c45e96-db83-4dad-9221-95c79fed713d

После публикации через несколько дней для вас будет доступна статистика загрузок, использования, частоты ошибок, оценок, рейтингов и комментариев приложения в таком виде…



… и наслаждаться великолпными комментариями от зарубежных коллег, волнительно переводить комментарии с китайского с каждый день обновлять страничку и радоваться статистике.

Почти все..



Я постарался рассмотреть достаточно тривиальный случай публикации приложения. Надеюсь, у вас не возникнет сложностей, с публикацией, помимо тех, на которых я заострил внимание (хотя, конечно, возникнут, без этого не бывает).
В Microsoft очень ждут от вас прекрасных приложений, и я желаю вам удачи при разработке и сертификации.

Конец


Пользуясь случаем, хочу немного дополнить пост своим опытом. Я считаю, что сейчас самое время публиковать приложения в магазин потому что:
— еще мало приложений
— сертифицируются быстрее, чем после 26 октября (запуск Windows 8)
— хорошая возможность занять нужную нишу

До открытия магазина студентом, моя игра проходила сертификацию обновления за 1,5 часа!!!
Сейчас дольше, после 26 октября будет намного дольше, так что не теряйся времени и публикуйте!

Baller




Моя игра, как я уже сказал прошла App Excellence Labs и через месяц, при невыпущенной Windows 8 получила уже около 10 000 уникальных загрузок и среднюю оценку по России 4.7, чему я очень рад!
Приятный момент также, что игра получила от Microsoft красивую ссылку: aka.ms/baller

А еще мне очень нужны люди в команду:
Вся информация о моих проектах и возможности работать вместе со мной есть здесь:
AppsFusion ВКонтакте
AppsFusion Facebook
AppsFusion Twitter
… или на сайте AppsFusion
Только сразу скажу, я студент и платить не могу, но можем делить доход с продаж приложений/игр :)

Все вопросы лично мне можно задавать сюда:
ВКонтакте
Facebook
Twitter
… и на почту: it@outlook.com

И последний момент: если вы — студент и опубликовали свое приложение в Windows Store, пожалуйста, не поленитесь, заполните анкетку на bit.ly/app4winstore. Это важно именно для меня.

Спасибо за внимание!
Share post

Comments 24

    +3
    На мой взгляд очень правильный ход от мелкомягких. Все более менее крупные платформы сейчас открывают свои двери для инди (сейчас разместить свою программу в appstore, googleplay, steam стало намного легче команде из нескольких или одного человека). В принципе пока стим не начал продавать программы у майкрософта есть все шансы захватить сердца десктопных программистов, коих, кстати, намного больше чем геймдевелоперов. Так что очень хорошая штука, я крайне рад.
      +3
      Очень полезная статья, спасибо автору. Еще интересно было бы почитать про опыт публикации в Windows Store нативных приложений.
        +11
        Знаю, что комментарий сейчас получит кучу минусов, но все-таки выскажусь. Вот за что не люблю Хабр, так за то, что минусуют и минусуют. Уже почти половину за пост наминусовали, но никто не решился объяснить почему. Выгода от этого кому-то есть?
        Хабр превратился в портал троллей и черновиков, имхо. А публиковать в другом месте не самый лучший вариант, если хочешь поделиться полезной информацией.
        Стараешься, тратишь кучу времени, делишься опытом, уберегаешь от граблей, а в итоге минус и никакого аргумента.
          +1
          Зачем принимать это близко к сердцу? Плюсов больше, чем минусов, а добавлений в избранное ещё больше — значит пост полезный и многим понравился. А минусовать будут всегда — это как на заборе «х**» написать или кнопки в лифте сжечь — у некоторых потребность такая.
            +1
            Интересное вы место выбрали, конечно, для обсуждения системы кармы. Конечно, в ней полно изъянов, но альтернативы нету. Если я не прав- предложите свою систему.

            В нынешнем виде всё работает разумно. Разве что я бы убрал ограничение на +5 кармы для написания в некоторые хабы ибо тогда юзеры просто пихают не в нужное место и за этого искать сложнее.
            Ну а по поводу минусни- что сказать, это вообще присуще гикам, ничего не поделать, такие люди. И даже не сказать что это плохо, однако всё же сужает простор мысли, ведь, по сути, часто минусуют посты людей просто с другой точкой зрения, а не просто посты дизинформарованных\невежественных\глупых людей.
              0
              Хотел выделить жирным шрифтом фразу " по сути, часто минусуют посты людей просто с другой точкой зрения", но теги использовать не смог. Запрещать обрамлять свой пост из за низкой кармы это как минимум неразумно.
              0
              Может за 1ю фразу: «Я студент-партнер Microsoft ...», ммм от зависти?
                +4
                Не обращайте внимание. Хабр он такой, с ним ничего не поделаешь. Кому надо тот оценил ваш пост.

                А теперь по теме, честно признаюсь что у меня тоже был о-о-огромный соблазн писать под Windows Store (но не под Windows Phone, т.к. я сам телефонами мобильными не пользуюсь, и следовательно зацепки нет), но потом я получил лицензию на MonoTouch и все кардинально поменялось: я понял что хочу писать приложения для своего iPad'а.

                Конечно у меня немножко другой подход: например у вас приложение бесплатное (поэтому много скачиваний), а я стараюсь все делать платно. Сейчас у меня 3 платных приложения (2 плагина, 1 standalone) и, что поразительно, все для Windows — используют Windows Forms, DevExpress и прочие прелести. И механизм персональной дистрибуции мне нравится: аппстор хорош, но терять 30% там обязательное требование, в то время что я теряю в разы меньше на аквайринге. Конечно, при больших оборотах оно и не важно в принципе.

                Вообщем суть моего поста в чем: MonoTouch очень хорош. Это как WinForms для iOS. А этот факт в свою очередь модерирует соблазн писать под Windows Store даже при условии что и тулы и сертификаты разработчика все бесплатны.
                  0
                  Будет и платная версия. Там 20 пробных уровней. Потом можно будет купить пак на 100 за 34 рубля, но прекрасно понимаю, что количество покупок будет намного ниже.
                    +1
                    А вот я считаю что если у вас там не новый «энгри бердс» то вполне можно вместо массовой продажы одной программы за доллар можно выпустить пару программ по $95. Так по крайней мере каждая покупка — маленькая, но радость, в то время как покупку за один доллар сложно оценить.
                      +1
                      Спасибо, я обязательно подумаю над таким способом продаж.
                        0
                        Есть и другое мнение по этому поводу habrahabr.ru/company/luxoft/blog/150422/ оно кстати с вашим изначально сходится.
                          0
                          Спасибо, мне еще над решением думать и думать :) все один делаю.
                        0
                        если развить тему то можно вообще вот так
                      0
                      Кстати, если интересен monotouch и winRT, то можно глянуть на MVVM Cross. Они там поддерживают кроссплатформенную разработку на уровне ViewModel, правда WinRT отстала месяца на три, но работы над проектом они ведут вроде активно.
                        0
                        Да, я это видел. У меня кстати тоже зреет своя разработческая модель — некое расширение X2C для дизайна формочек в Excel и последующей генерации структур на основе MonoTouch.Dialog.

                        Но понятное дело что это работает только для одного, узкого класса задач.
                    +1
                    Большое спасибо за такой подробный материал. Присоединяюсь к Aledensoft, хочу такое же по нативу ;)
                      0
                      О, еще вспомнил: в регистрационной форме Windows Store разработчиков (не WP8, не знаю почему это не одна платформа) допущены грубейшие ошибки, которые не позволят многим там зарегиться вообще. Например, есть поле где нужно вводить банковский код. Можно ввести 6 букв, но в европе-то BIC 11 символов. Пришлось отправить бесконечную череду жалоб в саппорт, который ну нивкакую не хотел со мной соглашаться хотя я их начал уже на официальные источники в сети отсылать чтобы они успокоились. А оказалось что то, что они назвали «банковский код» на самом деле «сортировочный код», совсем другая по смыслу структура. Бьюсь об заклад что форму они таки не не поменяли.

                      Прошу прощения за негативный вброс, просто у меня было около 5 шоустопперов в регистрации на этом сайте.
                        –5
                        Решили попробовать хостинг Azure от макроссофта, оплатить и юзать долго. У программиста стоит убунту. Знаете почему не купили? Потому что на хром не становиться сильверлайт, который необходим для использования хостинга. ВОТ КАКАЯ СУКА так сделала? — майкрософт.
                          0
                          сильверлайт не поддерживается на linux. отдельно от этого, ms сейчас переводит все что может на html в azure
                            0
                            Что то у вас устаревшие сведения

                            Новый портал не требует силверлайта, и работает даже с айпада
                            0
                            Огромное спасибо за статью. Можно поинтересоваться, что какие преимущества имеют партнеры майкрософт перед непартнерами и как вообще стать таким партнером? Платформа меня интересует, но пока что с Украины приложения нельзя продавать, вот не знаю, что делать…
                              0
                              Я — студент-партнер Microsoft. В данном случае, у меня никаких преимуществ не было. Я попал в магазин, как обычный рядовой разработчик, честно прошедший AEL :)
                              А информацию об этой программе можно почитать здесь.
                              0
                              Пункт 4 (проверка контента), действительно, самый важный и требования там строже, чем на AppStore от Apple.

                              В последний раз нас завернули китайскоговорящие ревьюеры за то, что на сайте, URL на который был указан при сабмите, не было текстов (только красивый бэк с названием игры и кнопка Like от Facebook). Были, видимо, и другие причины, но в отчет попала только одна. Другие причины выясним после очередного сабмита…

                              Only users with full accounts can post comments. Log in, please.