Ошибки при сертификации приложения в Windows Store

в 14:25, , рубрики: windows, windows store, магазин приложений, разработка, советы начинающим, метки: , ,

Грабли Windows StoreПривет всем. Перед вами очередная статья, посвященная публикации приложения в Windows Store. В отличии от других, в ней не будет самого алгоритма правильного создания, тестирования и выкладывания приложения в Магазин. Здесь будет описан только процесс сертификации пакета и его последствия.

Статья преследует цель помочь начинающим разработчикам заранее учесть и исправить все возможные недочеты, дабы потом не переделывать свое приложение. Надеюсь, что у меня получилось осветить если не все, то хотя бы большую часть возможных ошибок сертификации. К слову, если вы любите официальные документы, то можете прочесть «Требования к сертификации приложения для Магазина Windows», однако, они не совсем конкретны и содержат фразы вроде таких: «Любой недостаток, который, по мнению наших инженеров-испытателей, нарушает полную функциональность приложения, станет причиной неудовлетворительных результатов сертификации»

Именно для того, чтобы внести побольше конкретики и поделиться с вами своим небольшим опытом, я и пишу эту статью.

Предисловие для тех, кто не знает, что такое Windows Store

Это магазин приложений для Windows 8 и 8.1. В данный момент он очень необычен и не похож на Google Play или AppStore. Если в последних зайти в топ платных (или бесплатных) приложений, то скорее всего вы найдете причину, почему каждая из программ находится в нем. В Windows Store же это сделать трудно (особенно в Windows Phone Store), поскольку по причине непопулярности магазина, у качественных приложений столь же мало скачиваний и оценок, сколь и у некачественных.

Приведу пример, чтобы вам было понятно. Зашел недавно в Marketplace (Windows Phone Store) и в первой сотне топа платных увидел набор приложений (видимо, от одного автора) из которых можно выстроить целую драму: Как выбрать девушку → Как соблазнить девушку → Как сделать предложение → Как развлечь ребенка → Как бросить девушку → Как понять кота. Повторюсь, что это был платный топ и люди действительно платили за эти приложения.

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

Сам процесс хорошо описал пользователь itdevelop в своей статье. Я не буду повторяться, поэтому, если еще не читали, но есть желание опубликовать что-то свое в Магазин — советую к прочтению.

Я хочу дополнить лишь ее концовку. Сейчас приложения проходят проверку довольно быстро, несмотря на то, что в окне «Состояние сертификации» пишут, что некоторые шаги проверки могут занимать около 5 дней. Первый выпуск у меня, например, проверили меньше, чем за 8 часов. Второй чуть дольше (12-15), видимо, дело в выходных, или же проверяли какие именно изменения я внес.

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

И, наконец, хочу рассказать про еще один негативный момент. Статистика скачиваний, оценок, отзывов и всего прочего обновляется примерно раз в 2–3 дня. Причем, как в самом Магазине, так и в панели разработчика.

Ошибки сертификации

Наконец-то мы дошли до самого главного. О самой сертификации уже было выше, теперь стоит сказать о том, что случается после нее. Тут два варианта. Или вы попадаете в Магазин, или же вы получаете ответ от тестеров Microsoft, к которому скорее всего прикреплен PDF-файл, в котором описано, как и где именно они получили ошибку. Итак, что же можно от них получить?

Ваше приложение не соответствует требованию 1.2

Возможные причины:

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

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

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

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

Ваше приложение не соответствует требованию 3.2

Возможные причины:

  • приложение завершается сбоем при загрузке;
  • приложение завершается сбоем время от времени или неоднократно;
  • приложение перестает реагировать.

Причин здесь огромное множество. Вполне возможно, что вы чего-то не учли. Поэтому всегда при публикации (по крайней мере при первой точно) делайте проверку приложения утилитой WACK (VS предлагает, после того, как собирает пакет). Это занимает минут 5-10, но зато вы точно убедитесь в том, что приложение на 90% не попадет под эту ошибку.

Также возможно, что вы где-то используете не асинхронную загрузку, а потому приложение подвисает. async/await простая и полезная вещь — попробуйте, приложение от этого станет только лучше.

И последнее — не пытайтесь загрузить приложение под Windows 8 в качестве Windows 8.1 или наоборот. Оно просто упадет при тесте и вы не пройдете сертификацию именно по этой причине.

Ваше приложение не соответствует требованию 3.5

Возможные причины:

  • один или несколько элементов плитки в приложении не реагируют на касания;
  • приложение не поддерживает клавиатуру и мышь.

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

Также стоит проверить, точно ли человек с планшета сможет полноценно управлять вашим приложением. Так было в моем случае: я поставил обработчик на двойной клик правой клавишей мыши, но совсем забыл про то, что у пальца нет правой клавиши. Пришлось также вешать и обработчик двойного касания. Если вы хотите точно быть уверенным в том, что ничего не упустили — запустите приложение в тестовом режиме при помощи Имитатора (в Visual Studio нужно выбрать его в качестве машины, на которой запускается приложение, а в нем уже выбрать режим тач-экрана) и попробуйте сделать все то, что делали бы на компьютере.

Картинка в тему поста

image

Ваше приложение не соответствует требованию 3.8

Возможные причины:

  • приложение запускается дольше 5 секунд;
  • приложение приостанавливается дольше 2 секунд.

Это сложно протестировать, если у вас нет маломощных устройств, а только ноутбук с 8 Гб оперативной памяти на борту. Однако, могу посоветовать вам вспомнить про async/await (благо туториалов уже достаточно) и использовать асинхронную загрузку каких-то не совсем важных данных. Например, если вы написали все тот же медиа-плеер, подгрузить плейлист можно и постепенно, уже после основной загрузки приложения. Аналогично с приостановкой. Записывайте только самые важные данные. Плюс, может быть какие-то из них можно записывать при работе программы, а не при ее завершении?

Ваше приложение не соответствует требованию 4.1

Возможная причина: отсутствие страницы политики конфиденциальности.

Эта ошибка возникает в том случае, когда вы публикуете приложение, которому требуется доступ в интернет. В таком случае, вы должны обязательно добавить в само приложение страницу с описанием того, что вы не передаете данные третьим лицам, а также создать подобную страницу в интернете и указать во время публикации приложения ссылку на нее. И, конечно, если вы каким-либо образом публикуете данные — вы должны запрашивать подтверждение на это.

Ваше приложение не соответствует требованию 6.8

Возможная причина: изменение скриншота в графическом редакторе.

На самом деле не только это причина возникновения данной ошибки. Конечно, всем известно, что разработчик не может редактировать скриншоты (потому делают их обычно с помощью Имитатора, причем, не меньше, чем 1366×768, иначе отказ), зато может добавить одно свое промо-изображение, если хочет. Однако, есть еще одна причина возникновения этой ошибки — подпись скриншота (или сам скриншот) не на заявленном языке.

И снова пример «из жизни»: Когда добавлял приложение, публиковал его через Chrome. Залил скриншоты на нужном языке (это был русский; кстати, скриншоты должны быть на языке описания!), а когда писал описание оно не сохранялось. Не знаю, почему. Вместо «Игровой процесс» сохранялось «Buh» и выдавалась ошибка. Видимо, там как-то через JS ловились клавиши при вводе, или что-то подобное. Как бы вы поступили на этом месте? Я просто взял, и написал: «Gameplay». Это и послужило причиной отклонения приложения.

Вот тут стоит отметить важный факт: публикуйте свое приложение при помощи Internet Explorer. Это своеобразная гарантия того, что в панели разработчика все сработает именно так, как вы ожидаете. В нем фраза «Игровой процесс» сохранилась с первой же попытки.

Послесловие

Напоследок, хочется пожелать вам прежде всего публиковать качественные приложения, а компании Microsoft более объективно оценивать приложения, а не гнаться за их количеством. Сейчас в Магазине очень много низкокачественных продуктов, которые представляют собой обычный копи-паст из Википедии, да еще и криво оформленный. Пример:

Скриншот Магазина

И таких приложений не два. Именно это от женщины-разработчика и у нее таких уже аж 75 штук. Все оформлены абсолютно одинаково, сделаны всего на одном шаблоне и не несут никакой смысловой нагрузки.

Аналогичные приложения есть и от какого-то другого разработчика. У него их 69. Смысл тот же самый, только группы иностранные и плитки оформлены более красиво. Очень жаль, что компания не следует первому же пункту своих правил:

1.1 Приложение должно быть уникальным, креативным и полезным для пользователя, с версиями на всех языках и для всех рынков, которые оно поддерживает

Очень надеюсь, что среди Хабражителей нет подобных „разработчиков“.

И чуть-чуть о том, что опубликовал я

Пентамино

Поскольку я тоже начинающий разработчик, решил попробовать себя в Game Development и первое моё творение — реализация старой игры Пентамино́. В данный момент в последнем выпуске совсем немного уровней (только классические), но уже реализовано неплохое управление.

Я буду рад, если читатели попробуют игру, оценят, оставят отзыв в Маркете и, может быть, чего-нибудь посоветуют. В планах пока:

  • Добавить статистическую систему а-ля Angry Birds, чтобы последующие уровни/режимы открывались после прохождения предыдущих.
  • Добавить подсказки.
  • Добавить новые режимы: Мини (5×5 и подобные), Для детей (фигурки животных и т. п.).

Приложение переведено на 4 языка: Русский, Украинский, Английский и Испанский. В будущем планирую добавить еще Французский и Немецкий. К слову, основной «фишкой» которая радует именно меня, является тот факт, что в игре не используются изображения. Все, что там есть, нарисовано встроенными средствами XAML.

Автор: IgorAdamenko

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js