Привет всем, эта статья – о нашем опыте публикации десктопных и WinRT приложений в Windows Store. На данный момент опубликовано и доступно в магазине одно WinRT приложение и два обычных. В процессе разработки и публикации находятся ещё несколько.
Intro
Так сложилось, что у меня накопился 3х летний опыт публикации приложений для различных «альтернативных» экосистем. За это время довелось близко познакомиться с процессом сертификации Sony, Nintendo, Samsung Bada, Intel AppUp, Blackberry, Nokia Ovi, Windows Phone Marketplace и вот теперь Windows Store. Про особенности последнего эта статья.
Сначала немного о приложениях, которые мы публикуем. Это небольшие игры для casual аудитории. Наиболее известные из них – Весёлая Ферма и Сокровища Монтезумы. Мы уже 13 лет публикуем свои игры на почти всех новых и популярных платформах. Желающие узнать больше, могут полистать наш блог или зайти на наш сайт.
Публикация WinRT приложения
История эта началась ещё во времена Consumer Preview. В один прекрасный момент решено было начать разработку на платформе WinRT под новую версию Windows, с прицелом на магазин приложений. У Microsoft был специальный термин для таких приложений: приложения в стиле Metro. Однако, в свете последних событий далее будет использоваться термин WinRТ.
Тут надо пояснить, что полноценная публикация в магазине новой ОС возможна только для WinRT приложений. Десктопные приложения можно только «листить» (прошу прощения за кальку), т.е. вывешивать описания/скришноты и URL на сайт разработчика. Вопросы с продажами, доставкой контента, проблемы с пользователями и подобные инфраструктурные задачи решаются исключительно разработчиком.
Основная часть разработки была завершена за два месяца, параллельно велись переговоры с Microsoft о возможности ранней публикации. Переговоры завершились успешно, не в последнюю очередь благодаря поддержке сотрудников русского офиса Microsoft, за что им большое спасибо.
И вот инвайт получен, аккаунт заведён, игра готова и можно приступать к публикации. Не будем вдаваться в детали публикации, они подробно расписаны, например, тут.
Так же об этом на Хабре написано много статей в блоге Microsoft (например).
Сразу перейду к самому интересному, а именно – граблям, на которые пришлось наступить.
Грабли
Отчёт о сертификации
Если сертификация прошла успешно, то хорошо. А вот если нет, то понять почему, зачастую очень затруднительно. Дело в том, что отчёт не содержит указаний на конкретные места в вашем приложении, где произошла ошибка, не говоря уже о шагах воспроизведения. В отчёте есть только пункт из требований, который нарушен. Вот типичный отчёт:
Требования сформулированы достаточно абстрактно, например «1.1 Your app must offer customers unique, creative value or utility in all the languages and markets that it supports».
Честно говоря, мы первый раз столкнулись с таким подходом. Ведь это значит, что разработчик должен по сути догадаться, что у него не так в приложении. А если ошибка возникает не всегда и требует определённой последовательности действий пользователя?
Privacy Policy
В нашем случае мы добавили в приложение поддержку механизма Share Contract. Это встроенная в систему прослойка между соц. сетями и приложениями, т.е. пользователь может одной кнопкой запостить результаты в фейсбук и/или твиттер и т.п. Предполагается, что это облегчит нелегкое пользовательское бремя, а заодно и бремя разработчиков, которые будут теперь работать с единым API. Так вот, с точки зрения Microsoft, это нарушает пункт 4.1. (В последней редакции они разбили его на два подпункта, видимо часто такая проблема возникала. В то время, когда мы столкнулись с этим пунктом, он звучал так: «4.1 Your app must obtain opt-in or equivalent consent to publish personal information».)
Т.е. выходит, во-первых, что наше приложение собирает персональную информацию пользователя (это не так), и во-вторых, публикует без его ведома. При этом с Privacy Policy у нас всё было в порядке, на страничке приложения в магазине была и есть ссылка на документ.
Письма в поддержку и общение с представителями Microsoft в течение пары дней не помогли. Похоже, команда, которая занимается сертификацией, делает это по каким-то своим, не всегда очевидным критериям.
В результате проблему решили удалением Share.
Позже выяснилось, что нужно было добавить поддержку другого контракта, а именно Settings, и в уже нём добавить линк на Privacy Policy.
Low-power computer
Ещё одна проблема, с которой мы столкнулись в процессе сертификации это нарушение пункта 3.8 (Your app must meet the basic performance criteria on a low-power computer).
Microsoft не даёт чёткого определения, что такое «слабый» компьютер. Есть только общие слова: «such as an Intel Atom processor-based computer with a screen resolution of 1024x768 (or higher) and a rotational hard drive (as opposed to a solid-state hard drive)». Смущение вызывает уже то, что про ARM не сказано ни слова, хотя по сути данный пункт как раз про ARM.
До получения отчёта мы тестировались на самой слабой десктопной машине, которую удалось найти в офисе. Как оказалось, этого было недостаточно.
В результате нашли нетбук на Intel Atom, с тачем и разрешением 1024х600, но подключаемым внешним монитором. Было забавно управлять игрушкой тачем на внутреннем мониторе, когда картинка на внешнем. Но сертификацию прошли.
Заведение аккаунта в Windows Store и безопасность
Аккаунт в магазине привязан к e-mail адресу. Одному. Поэтому лучше всего сразу его делать списком рассылки. Доступ к магазину будет нужен многим людям: и программисту при сборке приложения и контент-менеджеру для правки текстов и бухгалтеру для сбора финансовой информации. Как-то разграничить области доступа внутри аккаунта нельзя – все имеют доступ ко всему.
В этом плане лучше всего ситуация с безопасностью у консольщиков. Это и закреплённый за компанией диапазон IP адресов и отдельный индивидуальный логин/пароль у каждого человека. Плюс разграничение доступа по ролям. Плюс журналирование по каждому действию, кто что поменял и когда. Таким образом, бухгалтеру можно спокойно выдать доступ к аккаунту с правами на чтение фин. статистики, не боясь, что он может случайно удалить приложение.
Кроме всего прочего, при каждой авторизации в магазине вас ждёт проверка, что вы имеете доступ к e-mail аккаунта:
Обычно заветный код приходит в течение 5 минут, но был случай, когда пришлось ждать несколько часов.
Разумеется, есть альтернативные варианты. Во-первых, можно получать код на SMS. Во-вторых, можно использовать «доверенный РС», но для этого требуется как минимум Internet Explorer последней версии.
Недостаток информации
Мы внимательно прочитали договор, который каждый разработчик обязан подписать в процессе заведения аккаунта. Там есть один спорный момент: Microsoft собирается собирать и перечислять налоговым органам налоги с продаж, которые агент обычно не собирает (НДС и налог с продаж). Причём только в некоторых странах, в остальных нужно платить налоги самостоятельно.
По этому пункту в договоре есть отсылка к MSDN – «For additional tax information and requirements please see MSDN». Поиск по MSDN результатов не принёс. Написали в поддержку, ждём ответа.
Та же ситуация с UI самого магазина, где часто ссылки Learn more ведут на странички-заглушки Coming soon, с предложением поискать в MSDN.
Microsoft Support
Представим, что у вас возник вопрос, на который вы, предварительно поискав в MSDN и Google, не нашли удовлетворительного ответа. Тогда вам дорога прямиком в службу Microsoft Support, а именно getsupport.microsoft.com.
Сама поддержка работает вполне хорошо, не хуже чем у конкурентов. В большинстве случаев ответы приходят в течение суток. Ребята работают те же, что отвечают на форумах. Да, конечно случается, что отвечают не на тот вопрос, который задан, а на тот, на который удобно ответить, но тут ничего не попишешь – везде так. Да, поддержка работает на английском языке и по US времени.
Однако есть с поддержкой два нюанса, про которые стоит знать.
Во-первых, при заведении тикета через веб форму иногда выкидывает на запрос логина/пароля, при этом набранный текст тикета теряется. Поэтому перед нажатием заветной кнопки лучше всего сохранить текст как минимум в буфер.
Во-вторых, ответы из поддержки не содержат историю переписки. Т.е. в ответе вы увидите ваш последний комментарий и ответ на него, но не начальный вопрос и всю переписку после.
Публикация десктопного приложения
Публикация десктопного приложения прошла даже проще и быстрее чем на WinRT. Всё, что потребовалось – это цифровой сертификат VeriSign и прохождение проверки на WACK. Получившийся отчёт загружается в Microsoft и приложение становится доступным для публикации.
Подробно процесс описан, например, здесь.
Стоит отметить, что процесс проверки на WACK десктопного приложения проходит дольше, чем проверка WinRT приложения и может легко занять больше 20 минут, особенно если проверка проходит на «слабом» компьютере, согласно рекомендациям Microsoft.
Выводы
В общем и целом процесс публикации в Windows Store достаточно прозрачен, за исключением некоторых моментов, связанных с болезнями роста. Мы прошли сертификацию WinRT приложения со второго раза, а десктопного – вообще с первого. Надеюсь, наш опыт кому-то пригодится. Если у вас возникли вопросы, добро пожаловать в комментарии!
Автор: Kepp