Недавно мне невероятно повезло участвовать в вебинаре Microsoft Стаса Павлова и Юлии Щегловой "Windows Phone для стартапов. Ответы на ваши вопросы" (запись доступна на techdays).
Из-за технических накладок я не смог показать некоторые из подготовленных материалов. В этой статье я постараюсь рассказать о подготовке к публикации и самом процессе публикации приложения.
Первый и довольно банальный совет заключается в том, чтобы проверять ваши приложения обязательно на физических устройствах. Для этого есть две основные причины. В первую очередь на эмуляторе можно не заметить проблем с производительностью, так как эмулятор работает слишком быстро. Если ресурсы телефона используются не эффективно, можно увидеть разницу в производительности между эмулятором и телефоном в десятки раз.
Также желательно проверять приложения на новых бюджетных устройствах с 256 мб памяти вроде Nokia Lumia 610. Так как на текущий момент он еще не в продаже, желательно хотя бы проверить приложение на эмуляторе с 256 мб, который идет в комплекте обновления инструментов WP7 SDK 7.1.1
Вторая не менее важная причина заключается в обнаружении проблем взаимодействии с интерфейсом вашего приложения. Особенно важно проверять приложение на живом устройстве, если вы разрабатываете собственные элементы управления или пишете игры.
Пример из жизни:
После разработки трехпозиционного чекбокса с которым можно было вполне успешно работать мышкой оказалось, что невероятно трудно попасть в него подушками пальцев. В другой реал-тайм стратегической игрушке по нашей логике клик на юните выделял его, а нажатие и прочерчивание машрута давала команду на перемешение/атаку по прорисованному маршруту. При тестировании на живом устройстве оказалось, что практически невозможно выделить юнит, вместо этого юнит перемещался на несколько пикселей, так как при нажатии пальцем обработчик показывал состояние словно нажали в определенной точке и слегка протащили.
Еще одна настоятельная рекомендация проверять ваши приложения с помощью marketplace test kit. Этот замечательный инструмент поставляется вместе со средствами разработки, и запустить его достаточно просто — из контекстного меню при клике правой кнопкой мыши по проекту выбрать пункт Open Marketplace Test Kit
Надо учитывать, что тесты проводятся для самопроверки и результаты теста никуда не отправляются и не влияют непосредственно на сам процесс публикации приложения и всего лишь помогают убедиться в том, что вы ничего не забыли. Это инструмент, который может сэкономить дни и недели при публикации приложений.
Также надо учитывать, что успешное прохождение всех тестов совершенно не гарантирует того, что ваше приложение пройдет сертификацию, хотя шансы пройти сертификацию успешно резко повышаются.
В Test Kit-е мы можем увидеть 4-вкладки: Application Details, Automated Test, Monitored Test, Manual Tests:
Первая вкладка Application Details нужна для того, чтобы можно было убедиться в том, что вы подготовили все необходимые иконки и скриншоты.
Во время публикации приложения вам понадобиться три иконки размером 173х173, 200х200, 99х99.
При этом, несмотря на то, что в самом приложении используется иконка размером 173х173, при публикации ее возможно нельзя будет использовать. В приложении иконка, сделанная в метро-стиле для поддержки акцентного цвета, должна быть с прозрачным фоном. Кроме того, так как нужно место под подпись, иконка в приложении обычно смещена вверх относительно центра. Соответственно при публикации приложения нужны непрозрачные отцентрированные иконки с одним из акцентных цветов в фоне, вместо прозрачного фона.
Также обязательно надо указать минимум один скриншот. Максимально просто скриншот требуемого размера (480 х 800) можно сделать с помощью эмулятора.
Довольно часто задаваемый вопрос — как убрать циферки слева на эмуляторе. Эти числа являются отладочными и чтобы они не выводились, достаточно запустить приложение на эмуляторе без отладки (например, комбинацией Ctrl+F5 из студии). Также можно еще залить xap файл с помощью утилиты Application Deployment поставляемый с инструментами разработчика.
Автоматизированных тестов очень мало, они проверяют, размер xap файла, указание в манифесте используемых функций, иконки (указанные в разделе Application Details) и скриншоты.
Размер xap файла должен быть менее 225 мб. Также надо учитывать, что если размер будет больше 20 мб, то он будет доступен для скачивания только через WiFi.
Эти тесты «мониторят» работу вашего приложения. Они работают только с физическим устройством и требуют релиз компиляции.
Приложение следит за временем запуска, потреблением памяти, краху приложения (приложение не должен закрываться неожиданно из-за ошибки) и использованию кнопки Back.
Также надо учитывать, что если эти тесты «не увидят» проблем с вашим приложением, это еще не значит что их нет, поэтому при проверке желательно по максимуму «нагружать» приложение. К примеру, если у вас есть какие-нибудь списки, то желательно заполнить как можно большим количеством элементов (количество зависит от особенностей вашего приложения, но обычно хватает 50-100 элементов, чтобы убедиться, есть ли проблемы или нет. Соответственно также надо по максимуму заполнять каждый из элементов – например, если в элементах отображаются картинки, то желательно заполнить разнообразными картинками.
Здесь вы можете увидеть список из 50 пунктов, по которым вы можете проверить на соответствие ваше приложение. Для каждого из тестов вы сами проставляете результат теста
Возможно, вы потратите полдня — день на проверке соответствия всех этих тестов, но это может сэкономить вам недели.
Для публикации приложения у вас должен быть девелоперский аккаунт.
По адресу http://create.msdn.com вы можете зарегистрировать аккаунт или перейти в личный кабинет перейдя в меню: my dashboard -> windows phone
После того как выберем submit a new app, запускается мастер загрузки приложения.
На первом шаге мы указываем загружаемый xap файл, тип публикации и номер версии.
Указанное имя будет видно только в личном кабинете и не влияет на имя приложения в маркетплейсе.
Публикация в Private Beta Test позволит вам распространять приложение в закрытом доступе тестировщикам (или, на ваше усмотрение, коллегам, друзьям и родственникам :)
Один из часто задаваемых вопросов касается заполнения описание. В частности как поменять/добавить языки.
Вы не можете поменять в деталях язык. Язык автоматически определяется из XAP файла.
Если вы хотите просто поменять основной язык вашего приложения, это можно сделать прямо в студии
в свойствах проекта вкладка Application в Assembly information выпадающее меню Neutral Language
Альтернативным вариантом является редактирование файла AssemblyInfo.cs, где надо указать нужный язык
Теперь если мы перезальем файл, то может увидеть, что вместо English у нас появился раздел Russian.
В большинстве случае требуется поддержка нескольких языков. В таком случае у вас должен быть один основной язык и поддерживаемые языки.
Сам процесс локализации совершенно идентичен процессу локализации обычных .NET десктоп, веб приложений.
К примеру, если у нас основной язык английский, и мы хотим добавить поддержку русского языка, мы добавляем соответствующие ресурсы
MyResource.resx
и локализованный языковой ресурс для русского языка:
MyResource.ru-RU.resx
Чтобы в маркетплейсе появились одновременно все языковые разделы, в нашем приложении, обязательно должны быть хотя бы один ресурс локализации для поддерживаемого языка.
Вторым шагом нам нужно отредактировать файл проекта нашего приложения [myprojectname].csproj
Надо открыть его в каком-нибудь текстовом редакторе (например в блокноте) и в разделе SupportedCultures указать поддерживаемые языки
ru-RU
Для нескольких языков через разделитель ";"
ru-RU;en-US
При этом основной язык указывать не обязательно
После этого мы можем видеть и заполнять информацию для всех поддерживаемых языков:
Дальше на этой странице заполняем описание приложения, ключевые поисковые слова и указываем соответствующие иконки и скриншоты приложения.
Третий шаг зависит от того, что вы выбрали — бета тест или публичный доступ.
В случае, если вы выбрали бета публикацию вы увидите форму с предложением указать LiveId тестеров:
Здесь тоже достаточно просто после того как нажеме Submit в течении пары часов получите ссылку для скачивания приложения.
В случае если была выбрана публикация в магазин приложений в третьем шаге будет предоставлена возможность указать цену и страны в которых будет опубликовано ваше приложение и наличие триальной версии. Для каждой страны цену указываются в национальной валюте:
Следующим последним шагом вы увидите текстовое поле для команды сертификации. В этом поле указывайте кратко особенности вашего приложения. Особенно надо указывать особенности, которые не соответствует гайдлайнам. К примеру, если ваше приложение обязательно требует авторизации (к примеру, клиент социальной сети или он-лайн игры), то надо указывать, что это особенность клиентского приложения и что со стороны сервера требуется авторизация для продолжения работы.
Также вы можете выбрать опции публикации. В этом пункте рекомендую выбирать последний пункт — публикацию вручную после прохождения сертификации. Довольно часто бывает, что обнаруживаются серьезные баги после начала процесса сертификации, и у вас появляется возможность исправить ошибку, не показывая ее пользователям.
Официально требуется около 5 дней на сертификацию приложения, однако у меня уходило от 4 до 8 дней на сертификацию.
После завершения сертификации вы получите письмо со статусом прохождения сертификации. В случае неудачи вы получите подробный отчет с информацией о том, что именно помешало пройти сертификацию.
У меня было несколько случаев, когда приложение было отклонено по ошибке. Последующее повторение запуска сертификации с подробным описанием, почему я не согласен с результатом приводило к тому что приложение проходило сертификацию. Так что не стесняйтесь писать тестровщикам об особенностях вашего приложения — это тоже может сэкономить время.
P.S. Как верно подмечено в комментариях ниже если ваше приложение требует авторизации то желательно предоставлять тестовый аккаунт. У меня было отклонено три приложения требующие авторизации именно из за этого. Предоставляйте тестовый аккаунт тестерам даже если это клиенты популярных соцсетей типа Facebook или Twitter.
Из-за технических накладок я не смог показать некоторые из подготовленных материалов. В этой статье я постараюсь рассказать о подготовке к публикации и самом процессе публикации приложения.
Подготовка к публикации.
1. Проверяйте на «живом» железе.
Первый и довольно банальный совет заключается в том, чтобы проверять ваши приложения обязательно на физических устройствах. Для этого есть две основные причины. В первую очередь на эмуляторе можно не заметить проблем с производительностью, так как эмулятор работает слишком быстро. Если ресурсы телефона используются не эффективно, можно увидеть разницу в производительности между эмулятором и телефоном в десятки раз.
Также желательно проверять приложения на новых бюджетных устройствах с 256 мб памяти вроде Nokia Lumia 610. Так как на текущий момент он еще не в продаже, желательно хотя бы проверить приложение на эмуляторе с 256 мб, который идет в комплекте обновления инструментов WP7 SDK 7.1.1
Вторая не менее важная причина заключается в обнаружении проблем взаимодействии с интерфейсом вашего приложения. Особенно важно проверять приложение на живом устройстве, если вы разрабатываете собственные элементы управления или пишете игры.
Пример из жизни:
После разработки трехпозиционного чекбокса с которым можно было вполне успешно работать мышкой оказалось, что невероятно трудно попасть в него подушками пальцев. В другой реал-тайм стратегической игрушке по нашей логике клик на юните выделял его, а нажатие и прочерчивание машрута давала команду на перемешение/атаку по прорисованному маршруту. При тестировании на живом устройстве оказалось, что практически невозможно выделить юнит, вместо этого юнит перемещался на несколько пикселей, так как при нажатии пальцем обработчик показывал состояние словно нажали в определенной точке и слегка протащили.
2. Проверяйте ваше приложение с помощью Marketplace Test Kit
Еще одна настоятельная рекомендация проверять ваши приложения с помощью marketplace test kit. Этот замечательный инструмент поставляется вместе со средствами разработки, и запустить его достаточно просто — из контекстного меню при клике правой кнопкой мыши по проекту выбрать пункт Open Marketplace Test Kit
Надо учитывать, что тесты проводятся для самопроверки и результаты теста никуда не отправляются и не влияют непосредственно на сам процесс публикации приложения и всего лишь помогают убедиться в том, что вы ничего не забыли. Это инструмент, который может сэкономить дни и недели при публикации приложений.
Также надо учитывать, что успешное прохождение всех тестов совершенно не гарантирует того, что ваше приложение пройдет сертификацию, хотя шансы пройти сертификацию успешно резко повышаются.
В Test Kit-е мы можем увидеть 4-вкладки: Application Details, Automated Test, Monitored Test, Manual Tests:
2.1. Application Details
Первая вкладка Application Details нужна для того, чтобы можно было убедиться в том, что вы подготовили все необходимые иконки и скриншоты.
Во время публикации приложения вам понадобиться три иконки размером 173х173, 200х200, 99х99.
При этом, несмотря на то, что в самом приложении используется иконка размером 173х173, при публикации ее возможно нельзя будет использовать. В приложении иконка, сделанная в метро-стиле для поддержки акцентного цвета, должна быть с прозрачным фоном. Кроме того, так как нужно место под подпись, иконка в приложении обычно смещена вверх относительно центра. Соответственно при публикации приложения нужны непрозрачные отцентрированные иконки с одним из акцентных цветов в фоне, вместо прозрачного фона.
Также обязательно надо указать минимум один скриншот. Максимально просто скриншот требуемого размера (480 х 800) можно сделать с помощью эмулятора.
Довольно часто задаваемый вопрос — как убрать циферки слева на эмуляторе. Эти числа являются отладочными и чтобы они не выводились, достаточно запустить приложение на эмуляторе без отладки (например, комбинацией Ctrl+F5 из студии). Также можно еще залить xap файл с помощью утилиты Application Deployment поставляемый с инструментами разработчика.
2.2. Automated Test
Автоматизированных тестов очень мало, они проверяют, размер xap файла, указание в манифесте используемых функций, иконки (указанные в разделе Application Details) и скриншоты.
Размер xap файла должен быть менее 225 мб. Также надо учитывать, что если размер будет больше 20 мб, то он будет доступен для скачивания только через WiFi.
2.3. Monitored Test
Эти тесты «мониторят» работу вашего приложения. Они работают только с физическим устройством и требуют релиз компиляции.
Приложение следит за временем запуска, потреблением памяти, краху приложения (приложение не должен закрываться неожиданно из-за ошибки) и использованию кнопки Back.
Также надо учитывать, что если эти тесты «не увидят» проблем с вашим приложением, это еще не значит что их нет, поэтому при проверке желательно по максимуму «нагружать» приложение. К примеру, если у вас есть какие-нибудь списки, то желательно заполнить как можно большим количеством элементов (количество зависит от особенностей вашего приложения, но обычно хватает 50-100 элементов, чтобы убедиться, есть ли проблемы или нет. Соответственно также надо по максимуму заполнять каждый из элементов – например, если в элементах отображаются картинки, то желательно заполнить разнообразными картинками.
2.4. Manual Test
Здесь вы можете увидеть список из 50 пунктов, по которым вы можете проверить на соответствие ваше приложение. Для каждого из тестов вы сами проставляете результат теста
Возможно, вы потратите полдня — день на проверке соответствия всех этих тестов, но это может сэкономить вам недели.
3. Публикация приложения
3.1. Загрузка
Для публикации приложения у вас должен быть девелоперский аккаунт.
По адресу http://create.msdn.com вы можете зарегистрировать аккаунт или перейти в личный кабинет перейдя в меню: my dashboard -> windows phone
После того как выберем submit a new app, запускается мастер загрузки приложения.
На первом шаге мы указываем загружаемый xap файл, тип публикации и номер версии.
Указанное имя будет видно только в личном кабинете и не влияет на имя приложения в маркетплейсе.
Публикация в Private Beta Test позволит вам распространять приложение в закрытом доступе тестировщикам (или, на ваше усмотрение, коллегам, друзьям и родственникам :)
3.2. Описание приложения.
Один из часто задаваемых вопросов касается заполнения описание. В частности как поменять/добавить языки.
Вы не можете поменять в деталях язык. Язык автоматически определяется из XAP файла.
Если вы хотите просто поменять основной язык вашего приложения, это можно сделать прямо в студии
в свойствах проекта вкладка Application в Assembly information выпадающее меню Neutral Language
Альтернативным вариантом является редактирование файла AssemblyInfo.cs, где надо указать нужный язык
[assembly: NeutralResourcesLanguageAttribute("ru-RU")]
Теперь если мы перезальем файл, то может увидеть, что вместо English у нас появился раздел Russian.
В большинстве случае требуется поддержка нескольких языков. В таком случае у вас должен быть один основной язык и поддерживаемые языки.
Сам процесс локализации совершенно идентичен процессу локализации обычных .NET десктоп, веб приложений.
К примеру, если у нас основной язык английский, и мы хотим добавить поддержку русского языка, мы добавляем соответствующие ресурсы
MyResource.resx
и локализованный языковой ресурс для русского языка:
MyResource.ru-RU.resx
Чтобы в маркетплейсе появились одновременно все языковые разделы, в нашем приложении, обязательно должны быть хотя бы один ресурс локализации для поддерживаемого языка.
Вторым шагом нам нужно отредактировать файл проекта нашего приложения [myprojectname].csproj
Надо открыть его в каком-нибудь текстовом редакторе (например в блокноте) и в разделе SupportedCultures указать поддерживаемые языки
ru-RU
Для нескольких языков через разделитель ";"
ru-RU;en-US
При этом основной язык указывать не обязательно
После этого мы можем видеть и заполнять информацию для всех поддерживаемых языков:
Дальше на этой странице заполняем описание приложения, ключевые поисковые слова и указываем соответствующие иконки и скриншоты приложения.
3.3 Бета тест
Третий шаг зависит от того, что вы выбрали — бета тест или публичный доступ.
В случае, если вы выбрали бета публикацию вы увидите форму с предложением указать LiveId тестеров:
Здесь тоже достаточно просто после того как нажеме Submit в течении пары часов получите ссылку для скачивания приложения.
3.3. Стоимость приложения (Public Marketplace )
В случае если была выбрана публикация в магазин приложений в третьем шаге будет предоставлена возможность указать цену и страны в которых будет опубликовано ваше приложение и наличие триальной версии. Для каждой страны цену указываются в национальной валюте:
3.4. тест (Public Marketplace )
Следующим последним шагом вы увидите текстовое поле для команды сертификации. В этом поле указывайте кратко особенности вашего приложения. Особенно надо указывать особенности, которые не соответствует гайдлайнам. К примеру, если ваше приложение обязательно требует авторизации (к примеру, клиент социальной сети или он-лайн игры), то надо указывать, что это особенность клиентского приложения и что со стороны сервера требуется авторизация для продолжения работы.
Также вы можете выбрать опции публикации. В этом пункте рекомендую выбирать последний пункт — публикацию вручную после прохождения сертификации. Довольно часто бывает, что обнаруживаются серьезные баги после начала процесса сертификации, и у вас появляется возможность исправить ошибку, не показывая ее пользователям.
Официально требуется около 5 дней на сертификацию приложения, однако у меня уходило от 4 до 8 дней на сертификацию.
После завершения сертификации вы получите письмо со статусом прохождения сертификации. В случае неудачи вы получите подробный отчет с информацией о том, что именно помешало пройти сертификацию.
У меня было несколько случаев, когда приложение было отклонено по ошибке. Последующее повторение запуска сертификации с подробным описанием, почему я не согласен с результатом приводило к тому что приложение проходило сертификацию. Так что не стесняйтесь писать тестровщикам об особенностях вашего приложения — это тоже может сэкономить время.
P.S. Как верно подмечено в комментариях ниже если ваше приложение требует авторизации то желательно предоставлять тестовый аккаунт. У меня было отклонено три приложения требующие авторизации именно из за этого. Предоставляйте тестовый аккаунт тестерам даже если это клиенты популярных соцсетей типа Facebook или Twitter.