Ios — Публицация приложения с шифрованием в AppStore


Содержание

[App Store] PGPTools – простой способ шифрования важных данных на iOS

Повсеместные взломы маститых сервисов вроде iCloud, Yahoo или Gmail заставляют пользователей тщательнее подходить к вопросу личных переписок. Ежедневные диалоги до сих пор без проблем ведутся через социальные сети или «лёгкие» мессенджеры, но только до того момента, когда требуется сообщить данные кредитной карты, автомобиля, паспорт или поделиться с другом парочкой серьёзных паролей. Разработчики PGPTools поняли, что без шифрования и дешифровки не обойтись, поэтому выпустили приложение, способное быстро «засекретить» ваше послание и «разгадать» его уже на другом конце провода.

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

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

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

Ключ — это и есть непосредственная защита вашего послания. Ключу вы присваиваете имя (для удобства), email, пароль и выбираете длину, будь то 1024, 2048 и 4096 бит.

Чтобы человек, с которым ведётся переписка, мог дешифровать сообщение, следует импортировать созданный ключ. Для этого предусмотрена единственная кнопка «шаринга», моментально отправляющая шифровку по почте. На данный момент PGP является самым безопасным стандартом шифрования, позволяющим делиться конфиденциальными данными без страха за их огласку.

Для примера, возьмём обыденный диалог между двумя персонажами:

— Привет! Так, куда лучше перевести деньги?

— Мне было бы удобнее сразу на счёт.

— Ок, жду координаты, присылай.

— Прямо сюда, в Skype?! Глупо печатать БИКи, номера кредиток и другую инфу в открытом доступе. Сейчас я всё зашифрую и сброшу ключ, которым ты сможешь дешифровать сообщение.

— Получил в письмо кучу символов. Что дальше?

— Жми «Импорт ключа», вставляй в пустое поле все эти «символы», а затем переходи на вкладку PGP Tools и конвертируй иероглифы в «человеческий» текст. Пароль только не забудь.

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

Преображение упомянутых выше символов в номера, счета и пароли происходит на вкладке PGP Tools, где в большое белое поле методом «копировать/вставить» помещается шифр, который после ввода пароля (указывается при создании ключа) становится самым обыкновенным текстом.

С объектом обзора вы можете не бояться за то, что некие хакеры перехватят это послание, получат доступ к вашим электронным сбережениям, и банальное предложение о переводе средств обернётся кошмаром вашей жизни. Неважно, какой будет мессенджер или сервис, где будет вестись беседа — просто копируете шифровку и отправляете ключ по email для дешифровки.

PGPTools — не первая разработка от ребят из SJ, уже более пяти лет трудящихся на поприще сетевой безопасности. В прошлом мы обозревали их Security Jabber, щеголявший той же субъективной проблемой, что и нынешний подопытный — минимальный функционал. Минус этот далёк от критичных и является, по большей части, субъективен, так как со своими задачами PGP Tools справляется на отлично.

Если даже после нашего обзора у вас остались вопросы к шифровальщику, то официальный сайт запросто ответит на них подборкой инструкций. PGPTools кроссплатформен и доступен для iOS, Android, OS X и Windows Phone.

Публикация своего приложения в AppStore

Хочу поделится опытом, как опубликовать приложение в AppStore от создания сертификатов до статуса «Готово к продаже».Думаю начинающим такая информация пригодится.

Для того, чтобы опубликовать приложения в AppStore, необходимо создать идентификатор приложения и сертификат дистрибьютора (помимо сертификата разработчика — iOS Development).

Первым делом создаем идентификатор App ID.

Имя сертификата вписываете любое, ID — это Bundle identifier, его вы указываете заранее в проекте Xcode и потом при создании идентификатора.

Вторым шагом будет создание сертификата дистрибьютора — iOS Distribution. В нем то мы и выбираем тот самый идентификатор App ID

Для загрузки всего этого добра в Xcode, есть 2 способа — «ручной и автоматический», для меня проще второй вариант. Для этого, заходим Xcode -> Preferences -> Account, выбираем свой аккаунт разработчика и нажимаем View Details и в появившемся окошке Downloads All.

Но и это еще не все. Открываем Build Settings вашего проекта и выбираем свои добавленные в Xcode сертификаты iOS Development и iOS Distribution

Для приложения проделываем тоже самое.

Какое имя проекта вы выбираете при создании? Уверен, в большинстве случаев это «test1» или «MyFirstProga». Так вот, что бы не попасть в такую ситуацию, в которую попал я, необходимо изменить название проекта, иначе вы не пройдете проверку или у ваших пользователей в iOS будет показываться название «MyFirstCoolProga» (в моем же случае не так все плохо, конечно). Для этого вписываем правильное название вот сюда:

А в появившемся окошке, жмем Rename

Теперь можно приступить к отправке. Компилируем проект Product -> Run, отправляем сборку в архив Product -> Archive. Если случайно закрыли окно, его можно вызвать так Window — Organizer. В архиве будут показаны все ваши версии и сборки.

Выбираем вашу сборку, которую хотите отправить в iTunes Connect и нажимаете Validate. В появившемся окне выбираем кем утвердить и жмем Choose.

После этого появится еще пару окон, в первом жмем Validate, а во втором Done. Так же во втором окне вам могут рассказать о том, что в проекте есть «Предупреждения».

И самое главное, отправка в iTunes Connect. Тут все просто, жмем Upload to App Store, а дальнейшие действия идентичны Validate
Заходим в iTunes Connect, выбираем приложение (или создаем, если еще нет), переходим в нужную версию (или добавляем), если вы делаете это первый раз, то версия будет 1.0. Рядом с Сборка будет «+», жмем, открывается окно с вашей загруженной сборкой. Правда выбрать сразу не получиться, она в течении часа проходит предварительную проверку.

С iTunes Connect в принципе вопросов не возникло, кроме одно. Как я писал ранее, когда платное приложение проходит проверку, оно переходит в состояние «Ожидание договора». Что делать?
В iTunes Connect заходим в раздел «Соглашения, налоги и банковские операции», на против обоих контрактов (Paid и iAd) жмем запросить Request. После, вам будет доступна настройка Contact info, Bank info, Tax info.

Добавляете контакт, и выбираете его для каждой роли.

Насчет способа вывода средств я даже не думал, поэтому не был готов к такому повороту событий. Для статуса приложения «Готов к продаже» все же необходимо заполнить всю информацию. Но мне подфартило, к счастью, я не выбросил распечатку реквизитов моего счета и банка (Сбербанк). В моем случае это было так: открываю Bank info, нажимаю Add Bank Account, выбираю Russia, ввожу БИК банка в Bank Identification Code. После чего предлагают заполнить данные (номер счета, ИНН банка, ФИО, кор. счет и т.д.), все заполняю, готово! Это можно назвать вариантом «на первое время», что бы запустить приложение в AppStore. Реквизиты легко получить в банкоматах, для этого нужна карта привязанная к счету. А в дальнейшем конечно стоит открыть долларовый счет в банке, у которого нет % за перевод в Россию. Данные вопросом особо не задавался, но сети рекомендуют ВТБ24, Альфабанк, Банк24.

Если вы:

  • Разработчик из России
  • Собираетесь зарабатывать на авторских гонорарах (продажа приложений), а этим может заниматься физическое лицо, без всяких ИП (правда платить 13% с таких гонораров)
  • Не являетесь резидентом США
  • Не имеете бизнес в США

то, дальше для вас.

В таком случае все настраивается просто. Открываем Tax info, жмем по Set Up под U.S. Tax Forms (т.к. у меня уже заполнено, то показывается кнопка View).

Заполняем по примеру:

Подтверждаем и ждем, скоро ваше приложение появится в AppStore.

Сервис для публикации приложений в App Store получил новое имя и собственное iOS-приложение

iTunes Connect → App Store Connect.

Во время конференции для разработчиков WWDC 2020 Apple объявила о переименовке службы для публикации приложений в App Store. Так сервис ITunes Connect превратился App Store Connect.

Как и прежде, веб-приложение позволяет загружать новые приложения, создавать страницу продукта, управлять выпуском, просматривать аналитику и отзывы пользователей. Также у сервиса появилось iOS приложение, которое помогает отслеживать продажи и отвечать на отзывы.

В ближайшее время Apple обещает выпустить больше функций для App Store Connect. Среди них упрощённые приглашения для бета-тестирования TestFlight (нужно будет только отправить ссылку), простое управление для доступа команды и новый REST API для автоматизации задач.

Ранее мы писали об обновлении macOS 10.14 Mojave и других новостях конференции WWDC 2020.

Хотите поделиться новостью или экспертным мнением? Пишите: news@cossa.ru

Пакет «MUSTHAVE-2020» для digital-агентств и веб-студий

RUWARD анонсировал главный коммерческий пакет MUSTHAVE-2020 для digital-агентств и веб-студий на весь 2020 год.

В пакет включено сразу 7 различных крутых опций, сервисов и рекламных форматов в рейтингах Руварда на следующий год.

Проблема шифрования приложений iPhone при публикации в appstore

0 Harsha [2011-11-23 08:57:00]

Я опубликовал приложение в appstore, которое использует urbanairship. При публикации в разделе «Шифрование» был задан вопрос «нет», но теперь я узнаю, что с помощью urbanairhip мы должны сказать «да» и выбрать соответствующий тип в последующем экране.

1) Я хочу знать, как это влияет на приложение?

2) Я не получаю никаких push-уведомлений, я предполагаю, что это может быть причиной, я прав?

3) Есть ли способ изменить это шифрование, не пройдя все шаги публикации снова.

Apple не допустила в App Store защищенный мессенджер Cryptocat

Небольшой скандал разгорелся на просторах App Store, хотя точнее все-таки будет сказать, что бушует он за его пределами. Дело в том, что анонсированный еще месяц назад защищенный мессенджер Cryptocat был отклонен цензорами магазина приложений Apple и не допущен в App Store. Разработчик, разумеется, остался крайне недоволен, а впоследствии выяснились и вовсе шпионские подробности всей этой ситуации.

На просторах Сети нередко поднимаются темы безопасности пользовательских переписок в популярных мессенджерах. Тот же WhatsApp, который обрел просто невероятную популярность, считается далеко не самым надежным решением. Определенные вопросы возникали и к встроенному в iOS и OS X iMessage. Специально для обеспокоенных последними тенденциями пользователей и предназначался защищенный мессенджер Cryptocat, который в своей работе использует продвинутые протоколы шифрования, чтобы исключить перехват сообщений третьими лицами.

Но Apple не пропустила Cryptocat в App Store. Создатель защищенного мессенджера, Надим Кобеисси, уже успел высказать свое недовольство через Twitter. При этом он, будучи скованным соглашением о неразглашении, которое зарегистрированные разработчики заключают с Apple, не смог пояснить причину отказа в публикации приложения. Однако по его словам подобная несправедливая политика компании из Купертино может нести угрозу любому подобному приложению в будущем.

К слову, обеспокоенность в свете выхода Cryptocat выразила не только Apple. Надим Кобеисси после анонса приложения подвергался особенно тщательному контролю во время передвижений по миру, а также попал под пристальное внимание правительства Канады. Все это вынудило создателя Cryptocat разместить серверы для работы мессенджера в шведском бункере, рассчитанном на защиту от ядерного оружия.

Подобная шпионская драма становится еще более интересной, если учесть, что Apple уже пропустила Cryptocat в Mac App Store некоторое время назад. Поэтому вопрос об истинных причинах недоступности мессенджера для iPhone остается открытым. [TheVerge]

App Store

Мы стараемся сделать магазин, в котором всем хорошо.

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

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

На сегодняшний день App Store — это динамичное и инновационное пространство, где все разработчики на равных условиях предлагают свои приложения и сервисы для iPhone, iPad, Mac, Apple TV и Apple Watch. И мы по-настоящему гордимся нашим магазином и нашей работой по его созданию.

Это наш магазин. А значит, наша ответственность.

Мы убеждены, что контент магазина непосредственно влияет на то, какое мнение складывается о нас. Мы поддерживаем все точки зрения, представленные в App Store, но также заботимся о том, чтобы в приложениях не было ничего оскорбительного для пользователей с другим мнением. Поэтому мы отклоняем приложения с недопустимым контентом или технологиями, особенно если речь идёт о безопасности детей. Например, у нас строго запрещены любые приложения с порнографией, дискриминационной риторикой, издевательствами и оскорблениями или другими крайними проявлениями бестактности.

Мы составили Руководство по проверке приложений для магазина App Store, чтобы у разработчиков было чёткое представление о том, как создавать лучшие приложения для покупателей. В нём описаны пять принципов: безопасность, производительность, коммерческая деятельность, дизайн и законодательные требования. Согласно им каждое приложение в App Store должно быть безопасным и удобным, соответствовать нашим правилам о конфиденциальности пользователей, защищать устройства от вредоносного ПО и угроз, а также работать по утверждённой бизнес-модели.

Проверяется каждое приложение и обновление.

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

Для тщательной проверки приложений задействуются как автоматизированные системы, так и сотни штатных экспертов, которые просматривают контент на 81 языке в трёх часовых поясах. Мы также регулярно наводим порядок в App Store. С 2020 года мы удалили из магазина более 1,4 миллиона приложений из-за того, что они не обновлялись или не были совместимы с новыми версиями наших операционных систем. Благодаря этому находить качественные приложения становится гораздо проще.

Инструкция по публикации iOS-приложения в App Store

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

Тема этой заметки — публикация приложения в App Store. Чуть позже мы опишем порядок действий для публикации в Google Play.

Что же нужно сделать PM`y в ходе публикации:

  1. создать аккаунт в App Store для заказчика, если у заказчика его нет, или предложить
  2. опубликовать приложение с нашего аккаунта;
  3. подготовить маркетинговые материалы (иконка, скриншоты, текст, видео для предпросмотра приложения);
  4. приложить к сборке сертификат цифровой подписи;
  5. настроить оплату за пользование приложения;
  6. Отправить сборку в App Store.

Идём под кат и разбираем по порядку.

Создание аккаунта

Чтобы опубликовать приложение в App Store, нужен Apple ID. Он создаётся по этой ссылке. Затем, с помощью Apple ID, войдите на сайт iOS Dev Center. После заполнения всех необходимых полей начнётся процедура регистрации вас как разработчика. Она стоит 99$. Ожидание подтверждения аккаунта займёт от двух недель.

Подготовка маркетинговых материалов

Требования к маркетинговым материалам:

  • требования стора. Описаны чётко и меняются редко. Изучить их можно здесь;
  • требования, которые возникают из задач проекта: что более актуально для ЦА этого приложения, какой маркетинговый план у проекта и т.д. Иногда важно, как это видит клиент — некоторые клиенты готовы использовать простые скриншоты и несложные тексты, другие постоянно меняют мнение, и с этим нужно работать.

Для срочных релизов или проверки MVP допускается сделать маркетинговые материалы, соответствующие требованиям магазина. В других проектах необходимо сделать так, чтобы маркетинговые материалы были максимальным вкладом в успех проекта.

Текст

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

Требования стора к тексту:

  • описывайте приложение детально, с вниманием к функциональностям. Максимальный объём — 4000 символов;
  • при использовании названия App Store в заголовках или тексте всегда набирайте App Store с прописными A и S;
  • всегда оставляйте название App Store на английском;
  • перед App Store можно использовать только артикль the;
  • не используйте дополнительные слова в названии, например сочетания iTunes App Store, Apple App Store или iPhone App Store;
  • не применяйте превосходные степени прилагательных («лучший App Store»);
  • не используйте предлог «на» перед App Store. Правильно — «в App Store» («приложение доступно в App Store») или «из App Store» («запустите приложение из App Store»);
  • не используйте термин «загружаемое»;
  • в отношении Apple TV будет правильно сказать «Ищите наше приложение в App Store»;
  • не применяйте для устройств Apple такие общие термины, как «смартфоны» или «планшеты»;
  • используйте их названия;
  • не упоминайте никаких форм спонсорства или поддержке со стороны Apple;
  • не имитируйте типографический стиль Apple, используя шрифт Myriad в своих текстах;
  • в описании не должно упоминаться названий других мобильных платформ;
  • описание должно соответствовать функциональности приложения;
  • названия приложения в iTunes и на рабочем столе устройства должны похожими;
  • описание должно иметь рейтинг 4+ (можно показывать четырёхлетним детям).
Цукерберг рекомендует:  Плагин jQuery UI Autocomplete s

Согласование текста с клиентом

Перед встречей PM делает различные варианты текстов и в ходе встречи обсуждает их с клиентом.
Эта статья на Apptractor поможет написать хороший текст для App Store и Google Play.

Скриншоты

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

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

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

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

Количество и размеры скриншотов

В App Store можно загрузить до пяти скриншотов на каждое разрешение экрана, минимум один на каждую локализацию.

Если приложение выглядит одинаково для всех разрешений и локализаций, можно использовать скриншот максимального разрешения для каждого типа устройства (то есть один для всех iPhone или один для всех iPad). Если нет:

    размеры скриншотов iPhone:

  • 4,7-inch. 1334 × 750 пикселей;
  • 5.5-inch. 1242 х 2208 пикселей;
  • 4-inch. 1136 x 640 пикселей;
  • 3.5-inch. 960 x 640 пикселей.

  • Размеры скриншотов iPad:
    • 1024 x 768 пикселей;
    • 2048 x 1536 пикселей;
    • 768 x 1024 пикселей;
    • 1536 x 2048 пикселей.

Другие требования App Store:

  • скриншоты не должны содержать альфа-канал — информацию о прозрачности изображения. При сохранении конечного варианта отключайте альфа-канал, если решили подготовить изображения в формате PNG;
  • разрешение не более 72 точек на дюйм;
  • схема формирования цвета – RGB;
  • разрешение PNG или JPEG.

Все требования App Store к скриншотам доступны по ссылке.

Видео для предпросмотра приложения

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

Ограничение по количеству видео

Разместить можно только один видеоролик

Требования стора к видео:

Советы по созданию видео:

Иконка

Требования стора к иконке

Большая иконка идентифицирует приложение в App Store и будет использована в случае фичеринга.

Требования App Store:

  • 1024 x 1024 пикселей;
  • 72 dpi, RGB, один слой, без прозрачности и скруглённых углов;
  • JPEG или PNG.

Маленькая иконка (57 x 57 пикселей — для iPhone и iPod touch, 50 x 50 и 72 x 72 пикселей — для iPad) используется на экране устройства.


Обеспечение сборки наличием сертификата цифровой подписи

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

Этот пункт инструкции относится к технической стороне разработки и выполняется разработчиком. Задача менеджера — удостовериться, что приложение имеет подпись. Если у билда не будет правильной подписи, можно получить реджект со стороны стора. Снижение этого риска — задача PM`a: спросите разработчика, правильная ли подпись у билда.

Что необходимо указывать при отправке сборки

Платное приложение и внутренние покупки

Внутренние покупки (In-App Purchase, или IAP) бывают четырех видов:

  • consumables (потреблямые). Покупаются многократно: патроны и здоровье в играх, кредиты в Skype;
  • non-consumables (непотребляемые). Покупаются один раз: фильмы, книги, функции приложения, новые уровни;
  • автоматически обновляемые подписки;
  • подписки, обновляемые вручную

Укажите правильно тип своих IAP. Например, непотребляемые для фильмов или дополнительных функций, подписки для периодических платежей.

Автоматически обновляемые подписки самостоятельно списывают деньги с карточки пользователя. Их можно использовать только для:

  • периодических изданий (журналы, газеты);
  • подписки на бизнес приложения;
  • медиа-приложения (музыка, видео).

Приложения могут использовать контент (журналы, музыку, фильмы), купленный вне приложения, если вы не даёте ссылку на внешний механизм покупки.

Чем дороже приложение или покупки, тем внимательнее Apple его проверяет. Смотри документ в разделе «Что может стать причиной отклонения приложения».

Что может стать причиной отклонения приложения

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

Подробнее о причинах отклонения: Common App Rejections.

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

Публикация приложений Xamarin.iOS в App Store Publishing Xamarin.iOS apps to the App Store

Чтобы опубликовать приложение в App Store, разработчик должен сначала отправить его на проверку компании Apple вместе со снимками экранов, описанием, значками и другими сведениями. To publish an app to the App Store, an app developer must first submit it – along with screenshots, a description, icons, and other information – to Apple for review. После утверждения приложения Apple поместит его в App Store, где пользователи смогут приобрести его и установить непосредственно со своих устройств iOS. After approving the app, Apple places it on the App Store, where users can purchase it and install it directly from their iOS devices.

В этом руководстве приведены действия по подготовке приложения к публикации в App Store и отправке его на проверку в компанию Apple. This guide describes the steps to follow to prepare an app for the App Store and send it to Apple for review. В частности, здесь описано следующее: In particular, it describes:

  • Выполнение правил проверки приложений в App Store Following the App Store Review Guidelines
  • Настройка идентификатора и назначений приложения Setting up an App ID and entitlements
  • Настройка значка App Store и значков приложений Providing an App Store icon and app icons
  • Настройка профиля подготовки App Store Setting up an App Store provisioning profile
  • Обновление конфигурации сборки «Выпуск» Updating the Release build configuration
  • Настройка приложения в iTunes Connect Configuring your app in iTunes Connect
  • Сборка приложения и отправка его в Apple Building your app and submitting it to Apple

Корпорация Apple объявила, что начиная с марта 2020 г. все публикуемые в App Store приложения и обновления должны быть собраны с использованием пакета SDK для iOS 12.1 или более поздних версий, входящего в Xcode версии 10.1 и выше. Apple has indicated that starting in March 2020, all apps and updates submitted to the App Store must have been built with the iOS 12.1 SDK or later, included in Xcode 10.1 or later. Кроме того, приложения должны поддерживать размеры экранов iPhone XS и iPad Pro с диагональю 12,9 дюйма. Apps should also support the iPhone XS and 12.9″ iPad Pro screen sizes.

Правила App Store App Store guidelines

Перед отправкой приложения на публикацию в App Store убедитесь, что оно соответствует стандартам, указанным в Правилах проверки приложений App Store компании Apple. Before submitting an app for publication in the App Store, make sure that it meets the standards defined by Apple’s App Store Review Guidelines. Apple проверяет публикуемые в App Store приложения на соответствие этим требованиям. When you submit an app to the App Store, Apple reviews it to make sure that it meets these requirements. При несоответствии Apple отклоняет приложение. В этом случае вам следует устранить указанные несоответствия и отправить его заново. If it does not, Apple will reject it – and you will need to address the cited problems and resubmit. Таким образом, рекомендуется ознакомиться с правилами на ранних этапах процесса разработки. Therefore, it is a good idea to become familiar the guidelines as early as possible in the development process.

Прежде чем отправлять приложение, проверьте следующие моменты: A couple of things to watch out for when submitting an app:

  1. Убедитесь, что описание приложения соответствует его функциональным возможностям. Make sure the app’s description matches its functionality.
  2. Протестируйте приложение на отсутствие сбоев при обычном использовании. Test that the app doesn’t crash under normal usage. Приложение нужно проверить на всех устройствах с iOS, которые оно поддерживает. This includes usage on every iOS device it supports.

Кроме того, ознакомьтесь с ресурсами по App Store, предлагаемыми компанией Apple. Also take a look at App Store-related resources that Apple provides.

Настройка идентификатора и назначений приложения Set up an App ID and entitlements

Каждое iOS-приложение имеет уникальный идентификатор со связанным набором служб приложений, называемых назначениями. Every iOS app has a unique App ID, which has an associated set of application services called entitlements. Назначения позволяют приложению выполнять различные действия, например получать push-уведомления, обращаться к функциям iOS, таким как HealthKit, и многое другое. Entitlements allow apps to do various things such as receive push notification, access iOS features such as HealthKit, and more.

Чтобы создать идентификатор приложения и выбрать необходимые назначения, зайдите на портал для разработчиков Apple и выполните следующие действия: To create an App ID and select any needed entitlements, visit the Apple Developer Portal and follow these steps:

  1. В разделе Certificates, Identifiers & Profiles (Сертификаты, идентификаторы и профили) выберите Identifiers > App IDs (Идентификаторы > Идентификаторы приложений). In the Certificates, IDs & Profiles section, select Identifiers > App IDs.
  2. Нажмите кнопку + и заполните поля Name (Имя) и Bundle ID (Идентификатор пакета) для нового приложения. Click the + button and provide a Name and Bundle ID for the new application.
  3. Прокрутите экран вниз и выберите в списке App Services (Службы приложений) службы, которые будут использоваться вашим приложением Xamarin.iOS. Scroll to the bottom of the screen and select any App Services that will be required by your Xamarin.iOS application. Более подробно службы приложений описаны в руководстве Работа с возможностями в Xamarin.iOS. App Services are further described in the Working with capabilities in Xamarin.iOS guide.
  4. Нажмите кнопку Continue (Продолжить) и следуйте инструкциям на экране, чтобы создать идентификатор приложения. Click the Continue button and follow the on-screen instructions to create the new App ID.

Помимо выбора и настройки требуемых служб приложений при задании ИД приложения необходимо также настроить ИД и назначения приложения в проекте Xamarin.iOS, отредактировав файлы Info.plist и Entitlements.plist. In addition to selecting and configuring the required application services when defining your App ID, you must configure the App ID and entitlements in your Xamarin.iOS project by editing the Info.plist and Entitlements.plist files. Дополнительные сведения см. в руководстве Работа с разрешениями в Xamarin.iOS, где описано, как создать файл Entitlements.plist и какие параметры назначений он содержит. For more information, take a look at the Working with Entitlements in Xamarin.iOS guide, which describes how to create an Entitlements.plist file and the meaning of the various entitlement settings it contains.

Добавление значка App Store Include an App Store icon

При отправке приложения в Apple убедитесь, что оно включает каталог ресурсов, содержащий значок App Store. When you submit an app to Apple, be sure that it includes an asset catalog that contains an App Store icon. Соответствующие инструкции см. в руководстве по значкам App Store в Xamarin.iOS. To learn how to do this, take a look at the App Store icons in Xamarin.iOS guide.

Настройка значков приложений и экранов запуска Set the apps icons and launch screens

Чтобы Apple опубликовала приложение в App Store, оно должно содержать требуемые значки и экраны запуска для всех поддерживаемых им iOS-устройств. For Apple to make an iOS app available on the App Store, it must have proper icons and launch screens for all of the iOS devices on which it can run. Дополнительные сведения о настройке значков приложений и экранов запуска см. в следующих руководствах: For more information about setting up app icons and launch screens, read the following guides:

Создание и установка профиля подготовки App Store Create and install an App Store provisioning profile

Для управления развертыванием определенных сборок приложений в iOS используются профили подготовки. iOS uses provisioning profiles to control how a particular application build can be deployed. Эти файлы содержат информацию о сертификате, используемом для подписывания приложения, идентификатор приложения, а также о том, где можно устанавливать приложение. These are files that contain information about the certificate used to sign an app, the App ID, and where the app can be installed. Для разработки и установки на определенные устройства профиль подготовки также включает список разрешенных устройств, где можно развертывать приложение. For development and ad hoc distribution, the provisioning profile also includes the list of allowed devices to which you can deploy the app. Однако для публичного распространения через App Store в приложение включаются только сертификат и идентификатор, поскольку другие механизмы установки не используются. However, for App Store distribution, only certificate and App ID information are included since the only mechanism for public distribution is the App Store.

Чтобы создать и установить профиль подготовки App Store, выполните следующие действия: To create and install an App Store provisioning profile, follow these steps:

  1. Войдите на портал для разработчиков Apple. Log in to the Apple Developer Portal.
  2. В разделе Certificates, IDs & Profiles (Сертификаты, идентификаторы и профили) выберите Provisioning Profiles > Distribution (Профили подготовки > Распространение). In Certificates, IDs & Profiles, select Provisioning Profiles > Distribution.
  3. Нажмите кнопку + , выберите App Store и щелкните Продолжить. Click the + button, select App Store, and click Continue.
  4. Выберите свой ИД приложения в списке, а затем щелкните Продолжить. Select your app’s App ID from the list and click Continue.
  5. Выберите сертификат для подписи и вновь щелкните Продолжить. Select a signing certificate and click Continue.
  6. Введите значение в поле Имя профиля и выберите Продолжить, чтобы создать профиль. Enter a Profile Name and click Continue to generate the profile.
  7. Воспользуйтесь инструментами Xamarin по управлению учетными записями Apple и скачайте только что созданный профиль подготовки на свой Mac. Use Xamarin’s Apple Account Management tools to download the newly-created provisioning profile to your Mac. Если вы работаете на Mac, вы также можете скачать профиль подготовки непосредственно с портала для разработчиков Apple и запустить его установку двойным щелчком. If you’re on a Mac, you can also download the provisioning profile directly from the Apple Developer Portal and double-click on it to install.

Обновление конфигурации сборки «Выпуск» Update the Release build configuration

В новых проектах Xamarin.iOS автоматически создаются конфигурации сборки Отладка и Выпуск. New Xamarin.iOS projects automatically set up Debug and Release build configurations. Для корректной настройки сборки Выпуск выполните следующие действия: To properly configure the Release build, follow these steps:

На Панели решения откройте файл Info.plist. From the Solution Pad, open Info.plist. Выберите Ручная подготовка. Select Manual Provisioning. Сохраните и закройте файл. Save and close the file.

Щелкните правой кнопкой мыши имя проекта на Панели решения, выберите Параметры и перейдите на вкладку Сборка iOS. Right-click on the Project Name in the Solution Pad, select Options, and navigate to the iOS Build tab.

Для элемента Конфигурация задайте значение Выпуск, а для элемента ПлатформаiPhone. Set Configuration to Release and Platform to iPhone.

Чтобы выполнить сборку с конкретным пакетом SDK для iOS, выберите его в списке Версия SDK. To build with a specific iOS SDK, select it from the SDK version list. В противном случае оставьте значение по умолчанию. Otherwise, leave this value at Default.

Компоновка уменьшает общий размер приложения за счет исключения неиспользуемого кода. Linking reduces the overall size of your application by stripping out unused code. В большинстве случаев для Поведения компоновщика рекомендуется оставить значение по умолчанию: Компоновать только пакеты SDK платформы. In most cases, Linker behavior should be set to the default value of Link Framework SDKs only. В некоторых случаях, например при использовании определенных сторонних библиотек, для сохранения нужного кода может потребоваться выбрать значение Не компоновать. In some situations, such as when using some third-party libraries, it may be necessary to set this value to Don’t Link to ensure that needed code is not removed. Дополнительные сведения см. в руководстве Компоновка приложений Xamarin.iOS. For more information, refer to the Linking Xamarin.iOS apps guide.

Чтобы еще сильнее уменьшить размер приложения, установите флажок Оптимизировать изображения PNG. Check Optimize PNG images to further decrease your application’s size.

Включать отладку не следует, так как это приведет к неоправданному увеличению размера сборки. Debugging should not be enabled, as it will make the build unnecessarily large.

Для устройств с iOS 11 необходимо выбрать одну из архитектур, поддерживающих ARM64. For iOS 11, select one of the device architectures that supports ARM64. Дополнительные сведения о сборке для 64-разрядных устройств с iOS см. в разделе по активации 64-разрядных сборок приложений Xamarin.iOS в документации Особенности 32- и 64-разрядных платформ. For more information on building for 64-bit iOS devices, please see the Enabling 64-Bit Builds of Xamarin.iOS Apps section of the 32/64-bit platform considerations documentation.

При необходимости вы можете использовать компилятор LLVM для создания более быстрого и компактного кода. You may wish to use the LLVM compiler to build smaller and faster code. Однако в этом случае увеличивается время компиляции. However, this option increases compile times.

Цукерберг рекомендует:  6 необычных способов обучиться программированию

Исходя из потребностей приложения, вы также можете настроить используемый тип сборки мусора и интернационализацию. Based on your application’s needs, you may also wish to adjust the type of Garbage Collection being used and set up for Internationalization.

После настройки параметров, описанных выше, параметры сборки должны выглядеть примерно следующим образом: After setting the options described above, your build settings should look similar to this:

Дополнительные сведения о параметрах сборки см. в руководстве Механизм сборки iOS. Also take a look at ths iOS build mechanics guide, which further describes build settings.

Откройте вкладку Подписывание пакета iOS. Если приведенные здесь параметры недоступны для изменения, задайте параметр Ручная подготовка в файле Info.plist. Navigate to the iOS Bundle Signing tab. If the options here are not editable, make sure that Manual Provisioning is selected in the Info.plist file.

Для элемента Конфигурация выберите значение Выпуск, а для элемента ПлатформаiPhone. Make sure that Configuration is set to Release and Platform is set to iPhone.

В качестве значения Удостоверение подписывания выберите Распределение (автоматически) . Set Signing Identity to Distribution (Automatic).

В качестве Профиля подготовки выберите профиль подготовки App Store, созданный выше. For Provisioning Profile, select the App Store provisioning profile created above.

Параметры подписывания для пакета проекта теперь должны выглядеть примерно так: Your project’s bundle signing options should now look similar to this:

Нажмите кнопку ОK, чтобы сохранить измененные свойства проекта. Click OK to save changes to the project properties.

Убедитесь, что среда Visual Studio 2020 связана с узлом сборки Mac. Make sure that Visual Studio 2020 has been paired to a Mac build host.

В обозревателе решений щелкните правой кнопкой мыши имя проекта и выберите пункт Свойства. Right-click on the Project Name in the Solution Explorer, select Properties.

На вкладке Сборка iOS для параметра Конфигурация задайте значение Выпуск, а для параметра ПлатформаiPhone. Navigate to the iOS Build tab and set Configuration to Release and Platform to iPhone.

Чтобы выполнить сборку с конкретным пакетом SDK для iOS, выберите его в списке Версия SDK. To build with a specific iOS SDK, select it from the SDK Version list. В противном случае оставьте значение по умолчанию. Otherwise, leave this value at Default.

Компоновка уменьшает общий размер приложения за счет исключения неиспользуемого кода. Linking reduces the overall size of your application by stripping out unused code. В большинстве случаев для Поведения компоновщика рекомендуется оставить значение по умолчанию: Компоновать только пакеты SDK платформы. In most cases, Linker Behavior should be set to the default value of Link Framework SDKs only. В некоторых случаях, например при использовании определенных сторонних библиотек, для сохранения нужного кода может потребоваться выбрать значение Не компоновать. In some situations, such as when using some third-party libraries, it may be necessary to set this value to Don’t Link to ensure that needed code is not removed. Дополнительные сведения см. в руководстве Компоновка приложений Xamarin.iOS. For more information, refer to the Linking Xamarin.iOS apps guide.

Чтобы еще сильнее уменьшить размер приложения, установите флажок Оптимизировать изображения PNG. Check Optimize PNG images to further decrease your application’s size.

Включать отладку не следует, так как это приведет к неоправданному увеличению размера сборки. Debugging should not be enabled, as it will make the build unnecessarily large.

Для устройств с iOS 11 необходимо выбрать одну из архитектур, поддерживающих ARM64. For iOS 11, select one of the device architectures that supports ARM64. Дополнительные сведения о сборке для 64-разрядных устройств с iOS см. в разделе по активации 64-разрядных сборок приложений Xamarin.iOS в документации Особенности 32- и 64-разрядных платформ. For more information on building for 64-bit iOS devices, please see the Enabling 64-Bit Builds of Xamarin.iOS Apps section of the 32/64-bit platform considerations documentation.

При необходимости вы можете использовать компилятор LLVM для создания более быстрого и компактного кода. You may wish to use the LLVM compiler to build smaller and faster code. Однако в этом случае увеличивается время компиляции. However, this option increases compile times.

Исходя из потребностей приложения, вы также можете настроить используемый тип сборки мусора и интернационализацию. Based on your application’s needs, you may also wish to adjust the type of Garbage Collection being used and set up for Internationalization.

После настройки параметров, описанных выше, параметры сборки должны выглядеть примерно следующим образом: After setting the options described above, your build settings should look similar to this:

Дополнительные сведения о параметрах сборки см. в руководстве Механизм сборки iOS. Also take a look at ths iOS build mechanics guide, which further describes build settings.

Откройте вкладку Подписывание пакета iOS. Убедитесь, что для параметра Конфигурация выбрано значение Выпуск, а для параметра ПлатформаiPhone. Также должен быть выбран параметр Подготовка вручную. Navigate to the iOS Bundle Signing tab. Make sure that Configuration is set to Release, Platform is set to iPhone, and that Manual Provisioning is selected.

В качестве значения Удостоверение подписывания выберите Распределение (автоматически) . Set Signing Identity to Distribution (Automatic).

В качестве Профиля подготовки выберите профиль подготовки App Store, созданный выше. For Provisioning Profile, select the App Store provisioning profile created above.

Параметры подписывания для пакета проекта теперь должны выглядеть примерно так: Your project’s bundle signing options should now look similar to this:

Сохраните и закройте конфигурацию сборки. Save the build configuration and close it.

Проверьте, что среда Visual Studio 2020 связана с узлом сборки Mac. Make sure that Visual Studio 2020 has been paired to a Mac build host.

В обозревателе решений щелкните правой кнопкой мыши имя проекта и выберите пункт Свойства. Right-click on the Project Name in the Solution Explorer, select Properties.

На вкладке Сборка iOS для параметра Конфигурация задайте значение Выпуск, а для параметра ПлатформаiPhone. Navigate to the iOS Build tab and set Configuration to Release and Platform to iPhone.

Чтобы выполнить сборку с конкретным пакетом SDK для iOS, выберите его в списке Версия SDK. To build with a specific iOS SDK, select it from the SDK Version list. В противном случае оставьте значение по умолчанию. Otherwise, leave this value at Default.

Компоновка уменьшает общий размер приложения за счет исключения неиспользуемого кода. Linking reduces the overall size of your application by stripping out unused code. В большинстве случаев для Поведения компоновщика рекомендуется оставить значение по умолчанию: Компоновать только пакеты SDK платформы. In most cases, Linker Behavior should be set to the default value of Link Framework SDKs only. В некоторых случаях, например при использовании определенных сторонних библиотек, для сохранения нужного кода может потребоваться выбрать значение Не компоновать. In some situations, such as when using some third-party libraries, it may be necessary to set this value to Don’t Link to ensure that needed code is not removed. Дополнительные сведения см. в руководстве Компоновка приложений Xamarin.iOS. For more information, refer to the Linking Xamarin.iOS apps guide.

Чтобы еще сильнее уменьшить размер приложения, установите флажок Оптимизировать изображения PNG. Check Optimize PNG images to further decrease your application’s size.

Включать отладку не следует, так как это приведет к неоправданному увеличению размера сборки. Debugging should not be enabled, as it will make the build unnecessarily large.

Для устройств с iOS 11 необходимо выбрать одну из архитектур, поддерживающих ARM64. For iOS 11, select one of the device architectures that supports ARM64. Дополнительные сведения о сборке для 64-разрядных устройств с iOS см. в разделе по активации 64-разрядных сборок приложений Xamarin.iOS в документации Особенности 32- и 64-разрядных платформ. For more information on building for 64-bit iOS devices, please see the Enabling 64-Bit Builds of Xamarin.iOS Apps section of the 32/64-bit platform considerations documentation.

При необходимости вы можете использовать компилятор LLVM для создания более быстрого и компактного кода. You may wish to use the LLVM compiler to build smaller and faster code. Однако в этом случае увеличивается время компиляции. However, this option increases compile times.

Исходя из потребностей приложения, вы также можете настроить используемый тип сборки мусора и интернационализацию. Based on your application’s needs, you may also wish to adjust the type of Garbage Collection being used and set up for Internationalization.

После настройки параметров, описанных выше, параметры сборки должны выглядеть примерно следующим образом: After setting the options described above, your build settings should look similar to this:

Дополнительные сведения о параметрах сборки см. в руководстве Механизм сборки iOS. Also take a look at ths iOS build mechanics guide, which further describes build settings.

Откройте вкладку Подписывание пакета iOS. Убедитесь, что для параметра Конфигурация выбрано значение Выпуск, а для параметра ПлатформаiPhone. Также должен быть выбран параметр Подготовка вручную. Navigate to the iOS Bundle Signing tab. Make sure that Configuration is set to Release, Platform is set to iPhone, and that Manual Provisioning is selected.

В качестве значения Удостоверение подписывания выберите Распределение (автоматически) . Set Signing Identity to Distribution (Automatic).

В качестве Профиля подготовки выберите профиль подготовки App Store, созданный выше. For Provisioning Profile, select the App Store provisioning profile created above.

Параметры подписывания для пакета проекта теперь должны выглядеть примерно так: Your project’s bundle signing options should now look similar to this:

Откройте вкладку Параметры IPA iOS. Navigate to the iOS IPA Options tab.

Для элемента Конфигурация выберите значение Выпуск, а для элемента ПлатформаiPhone. Make sure that Configuration is set to Release and Platform is set to iPhone.

Поставьте флажок Создать архив пакета iTunes (IPA) . Check the Build iTunes Package Archive (IPA) checkbox. В этом случае каждая сборка Выпуск (так как это выбранная конфигурация) будет создавать файл с расширением .ipa. This setting will cause each Release build (since that is the selected configuration) to generate an .ipa file. Этот файл можно отправить в Apple для публикации в App Store. This file can be submitted to Apple for release on the App Store.

Метаданные iTunes и iTunesArtwork являются необязательными для публикации в App Store. iTunes Metadata and iTunesArtwork are not necessary for App Store releases. Дополнительные сведения см. в статьях Файл iTunesMetadata.plist в приложениях Xamarin.iOS и Иллюстрации iTunes. For more information, take a look at The iTunesMetadata.plist file in Xamarin.iOS apps and iTunes Artwork.

Чтобы указать имя IPA-файла, которое отличается от имени проекта Xamarin.iOS, введите его в поле Имя пакета. To specify an .ipa filename that differs from the Xamarin.iOS project name, enter it in the Package Name field.

Сохраните и закройте конфигурацию сборки. Save the build configuration and close it.

Настройка приложения в iTunes Connect Configure your app in iTunes Connect

iTunes Connect — это набор веб-инструментов для управления iOS-приложениями в App Store. iTunes Connect is a suite of web-based tools for managing your iOS applications on the App Store. Необходимо должным образом настроить приложение Xamarin.iOS в iTunes Connect, прежде чем отправлять его на проверку в Apple и публиковать в App Store. Your Xamarin.iOS application must be properly configured in iTunes Connect before it can be submitted to Apple for review and released on the App Store.

Чтобы узнать, как это сделать, см. руководство Настройка приложения в iTunes Connect. To learn how to do this, read the Configuring an app in iTunes Connect guide.

Сборка и отправка приложения Build and submit your app

Когда вы настроите должным образом параметры сборки и iTunes Connect будет ожидать отправки, вы можете выполнить сборку приложения и отправить его в Apple. With your build settings properly configured and iTunes Connect awaiting your submission, you can now build your app and submit it to Apple.

В Visual Studio для Mac выберите конфигурацию сборки Выпуск и устройство (не симулятор), для которого выполняется сборка. In Visual Studio for Mac, select the Release build configuration and a device (not a simulator) for which to build.

В меню Сборка выберите пункт Архивировать для публикации. From the Build menu, select Archive for Publishing.

После создания архива появится представление Архивы. Once the archive has been created, the Archives view will be displayed. Нажмите кнопку Подписать и распространить, чтобы открыть мастер публикации. Click Sign and Distribute. to open the publishing wizard.

![Снимок экрана: расположение кнопки «Подписать и распространить» в представлении «Архивы».](publishing-to-the-app-store-images/archives-mac.png «Снимок экрана: расположение кнопки «Подписать и распространить» в представлении «Архивы».»)

По умолчанию в представлении Архивы показаны только архивы для открытого решения. By default the Archives view only shows archives for the open solution. Чтобы просмотреть все решения с архивами, установите флажок Показать все архивы. To see all solutions that have archives, check the Show all archives checkbox. Рекомендуем сохранять старые архивы, чтобы при необходимости использовать содержащуюся в них отладочную информацию для формирования отчетов о сбоях с символьным выражением. It is a good idea to keep old archives so that the debug information they include can be used to symbolicate crash reports if necessary.

Выберите App Store в качестве канала распространения. Select the App Store distribution channel. Нажмите кнопку Далее. Click Next.

Выберите Отправить в качестве места назначения. Select Upload as the destination. Нажмите кнопку Далее. Click Next.

В окне Профиль подготовки выберите удостоверение для подписывания, приложение и профиль подготовки. In the Provisioning profile window, select your signing identity, app, and provisioning profile. Нажмите кнопку Далее. Click Next.

В окне Сведения об App Store Connect в меню выберите имя пользователя Apple ID и введите пароль для приложения. In the App Store Connect information window, select an Apple ID username from the menu and enter an app-specific password. Нажмите кнопку Далее. Click Next.

Проверьте сведения о пакете, а затем нажмите кнопку Опубликовать. Verify the details of your package and click Publish. После выбора расположения для сохранения IPA-файла мастер отправит приложение в App Store Connect. After selecting a location to save the .ipa file, the wizard will upload your app to App Store Connect.


Компания Apple может отклонить приложения с файлом iTunesMetadata.plist, включенным в IPA-файл, что приводит к ошибке следующего вида: Apple may reject apps with the iTunesMetadata.plist included in the .ipa file, resulting in an error such as the following:

ERROR: ERROR ITMS-90047: «Disallowed paths ( «iTunesMetadata.plist» ) found at: Payload/iPhoneApp1.app»

Сведения об устранении этой ошибки см. в этой записи на форумах Xamarin. For a workaround to this error, take a look at this post in the Xamarin Forums.

Публикация в App Store поддерживается в Visual Studio 2020 версии 16.3 и более поздних. Publishing to the App Store is supported in Visual Studio 2020 version 16.3 and higher.

Убедитесь, что среда Visual Studio 2020 связана с узлом сборки Mac. Make sure that Visual Studio 2020 is paired to a Mac build host.

В раскрывающемся списке Конфигурации решения выберите Выпуск, а в раскрывающемся списке Платформы решения выберите iPhone. Select Release from the Solution Configurations dropdown, and iPhone from the Solution Platforms dropdown.

![Снимок экрана: панель инструментов Visual Studio, в которой для параметра конфигурации решения задано значение Выпуск, для платформы решения задано значение iPhone, а для параметра Целевой объект задано значение Устройство. ](publishing-to-the-app-store-images/chooseConfig-w157.png «Снимок экрана: панель инструментов Visual Studio, в которой для параметра конфигурации решения задано значение «Выпуск», для платформы решения задано значение iPhone, а для параметра «Целевой объект» задано значение «Устройство».»)

В меню Сборка выберите Архивировать. . Откроется Диспетчер архивов и начнется создание архива. From the Build menu, select Archive. . This will open the Archive Manager and begin creating an archive.

После создания архива щелкните Распределить. , чтобы открыть мастер публикации. Once the archive has been created, click Distribute. to open the publishing wizard.

![Снимок экрана: расположение кнопки Распределить в представлении диспетчера архивов.](publishing-to-the-app-store-images/archives-win.png «Снимок экрана: расположение кнопки «Распределить» в представлении диспетчера архивов.»)

Выберите App Store в качестве канала распространения. Select the App Store distribution channel.

Выберите удостоверение подписывания и профиль подготовки. Select your signing identity and provisioning profile. Щелкните Загрузить в магазин. Click Upload to Store.

Введите идентификатор Apple ID и пароль для приложения. Enter your Apple ID and an app-specific password. Щелкните OK, чтобы начать передачу приложения в App Store Connect. Click OK to begin uploading your app to App Store Connect.

Visual Studio 2020 не поддерживает полный рабочий процесс публикации, доступный в Visual Studio для Mac и Visual Studio 2020. Visual Studio 2020 does not support the full publishing workflow found in Visual Studio for Mac and Visual Studio 2020.

Приведенные ниже действия относятся к Xcode 10. The steps below are for Xcode 10.

Вы по-прежнему можете выполнить приведенные ниже действия, чтобы создать файл IPA, но для развертывания в App Store с помощью Xcode 11 (требуется для поддержки iOS 13) следует использовать Visual Studio для Mac. You can still follow the steps below to build an .IPA file, but to deploy to the App Store using Xcode 11 (which is required for iOS 13 support) you should use Visual Studio for Mac.

Проверьте, что среда Visual Studio 2020 связана с узлом сборки Mac. Make sure that Visual Studio 2020 has been paired to a Mac build host.

В Visual Studio 2020 в раскрывающемся списке Конфигурации решения выберите Выпуск, а в раскрывающемся списке Платформы решения выберите iPhone. Select Release from the Visual Studio 2020 Solution Configurations dropdown, and iPhone from the Solution Platforms dropdown.

Выполните построение проекта. Build the project. Будет создан IPA-файл. This creates an .ipa file.

Цукерберг рекомендует:  Плагин селектора элементов списка

В разделе Обновление конфигурации сборки «Выпуск» этого документа параметры сборки приложения настроены для создания IPA-файла для каждой сборки Выпуск. The Update the Release build configuration section of this doc configured the app’s build settings to create an .ipa file for each Release build.

Чтобы найти IPA-файл на компьютере Windows, в Visual Studio 2020 или Visual Studio 2020 в обозревателе решений щелкните правой кнопкой мыши имя проекта Xamarin.iOS и выберите пункт Open Folder in File Explorer (Открыть папку в проводнике). To find the .ipa file on the Windows machine, right-click on the Xamarin.iOS project name in the Visual Studio 2020 or Visual Studio 2020 Solution Explorer and choose Open Folder in File Explorer. Затем в открывшемся проводнике Windows перейдите в подкаталог iPhone/bin/Release. Then, in the just-opened Windows File Explorer, navigate to the bin/iPhone/Release subdirectory. Если вы не настроили расположение выходного IPA-файла, оно должно находиться в этом каталоге. Unless you have customized the .ipa file output location, it should be in this directory.

Чтобы просмотреть IPA-файл на узле сборки Mac, в Visual Studio 2020 или Visual Studio 2020 в обозревателе решений (в Windows) щелкните правой кнопкой мыши имя проекта Xamarin.iOS и выберите пункт Show IPA File on Build Server (Показать IPA-файл на сервере сборки). To instead view the .ipa file on the Mac build host, right-click the Xamarin.iOS project name in the Visual Studio 2020 or Visual Studio 2020 Solution Explorer (on Windows) and select Show IPA File on Build Server. На узле сборки Mac откроется окно системы поиска с выбранным IPA-файлом. This will open a Finder window on the Mac build host with the .ipa file selected.

Следующие шаги допустимы только в том случае, если вы используете Xcode 10 и выполняете сборку для iOS 12 и более ранних версий. The following steps are only valid if you’re using Xcode 10, and building for iOS 12 and earlier.

Для развертывания в App Store с помощью Xcode 11 (для iOS 13), необходимо использовать Visual Studio для Mac, чтобы создать и передать приложение. To deploy to the App Store using Xcode 11 (for iOS 13), you should use Visual Studio for Mac to build and upload your app. Загрузчик приложений будет недоступен для Xcode 11. Application Loader will not be available for Xcode 11.

На узле сборки Mac откройте загрузчик приложений. On the Mac build host, open Application Loader. В Xcode выберите Xcode > Open Developer Tool > Application Launcher (Xcode > Открыть средство разработчика > Загрузчик приложений). In Xcode, select Xcode > Open Developer Tool > Application Loader.

Дополнительные сведения о средстве см. в документации Apple по загрузчику приложений. For more information about the tool, take a look at Apple’s docs about Application Loader.

Выполните вход в загрузчик приложений (обратите внимание, что для Apple ID необходимо создать соответствующий приложению пароль). Log in to Application Loader (note that you must create an app-specific password for your Apple ID).

Щелкните Deliver Your App (Доставить приложение) и нажмите кнопку Choose (Выбрать): Select Deliver Your App and click the Choose button:

Выберите ранее созданный IPA-файл и нажмите кнопку OK. Select the .ipa file created above and click OK.

Загрузчик приложения выполнит проверку файла: The Application Loader will validate the file:

Нажмите кнопку Next (Далее). Приложение будет проверено на соответствие требованиям App Store: Click the Next button and the application will be validated against the App Store:

Нажмите кнопку Send (Отправить), чтобы отправить приложение на проверку в компанию Apple. Click the Send button to send the application to Apple for review.

После успешной загрузки появится соответствующее сообщение загрузчика приложений. The Application Loader will inform you when the file has been successfully uploaded.

Компания Apple может отклонить приложения с файлом iTunesMetadata.plist, включенным в IPA-файл, что приводит к ошибке следующего вида: Apple may reject apps with the iTunesMetadata.plist included in the .ipa file, resulting in an error such as the following:

ERROR: ERROR ITMS-90047: «Disallowed paths ( «iTunesMetadata.plist» ) found at: Payload/iPhoneApp1.app»

Сведения об устранении этой ошибки см. в этой записи на форумах Xamarin. For a workaround to this error, take a look at this post in the Xamarin Forums.

Состояние iTunes Connect iTunes Connect status

Чтобы просмотреть состояние отправки приложения, войдите в iTunes Connect и выберите приложение. To see the status of your app submission, log in to iTunes Connect and select your app. Должно отображаться начальное состояние Waiting For Review (Ожидание проверки), хотя при обработке может временно выводиться Upload Received (Получена отправка). The initial status should be Waiting For Review, though it may temporarily read Upload Received while it is being processed.

Советы и рекомендации Tips and tricks

Настройка расположения IPA-файла Customize the .ipa location

Свойство IpaPackageDir в MSBuild позволяет настраивать выходную папку IPA-файла. An MSBuild property, IpaPackageDir , makes it possible to customize the .ipa file output location. Если в параметре IpaPackageDir задано настраиваемое расположение, IPA-файл будет помещен в указанную папку, а не в установленный по умолчанию подкаталог с меткой времени. If IpaPackageDir is set to a custom location, the .ipa file will be placed in that location instead of the default timestamped subdirectory. Это может быть полезно при создании автоматизированных сборок, для работы которых требуется конкретный путь к каталогу (например, это могут быть сборки непрерывной интеграции). This can be useful when creating automated builds that rely on a specific directory path to work correctly, such as those used for Continuous Integration (CI) builds.

Использовать новое свойство можно несколькими способами. There are several possible ways to use the new property. Например, чтобы выводить IPA-файл в старый каталог по умолчанию (как в Xamarin.iOS 9.6 и более ранних версиях), задайте для свойства IpaPackageDir значение $(OutputPath) одним из следующих способов. For example, to output the .ipa file to the old default directory (as in Xamarin.iOS 9.6 and lower), you can set the IpaPackageDir property to $(OutputPath) using one of the following approaches. Оба подхода совместимы со всеми сборками Unified API Xamarin.iOS, включая сборки интегрированной среды разработки и командной строки, которые используют msbuild или mdtool: Both approaches are compatible with all Unified API Xamarin.iOS builds, including IDE builds as well as command-line builds that use msbuild or mdtool:

Первый способ подразумевает установку свойства IpaPackageDir в элементе

в файле MSBuild. The first option is to set the IpaPackageDir property within a

element in an MSBuild file. Например, можно добавить следующий элемент

в конец CSPROJ-файла проекта приложения iOS (непосредственно перед закрывающим тегом

): For example, you could add the following

to the bottom of the iOS app project .csproj file (just before the closing

Более эффективный подход заключается в добавлении элемента в конец существующего элемента

, который соответствует конфигурации, используемой при сборке IPA-файла. A better approach is to add a element to the bottom of the existing

that corresponds to the configuration used to build the .ipa file. Это способ является рекомендуемым, поскольку он позволяет обеспечить дальнейшую совместимость с запланированными настройками на странице параметров IPA-файла для iOS в свойствах проекта. This is better because it will prepare the project for future compatibility with a planned setting on the iOS IPA Options project properties page. Если вы в данный момент используете конфигурацию Release|iPhone для сборки IPA-файла, полностью обновленная группа свойств может иметь следующий вид: If you currently use the Release|iPhone configuration to build the .ipa file, the complete updated property group might look similar to the following:

Альтернативный способ для сборок командной строки msbuild заключается в добавлении аргумента командной строки /p: для установки свойства IpaPackageDir . An alternate technique for msbuild command-line builds is to add a /p: command line argument to set the IpaPackageDir property. В этом случае обратите внимание, что msbuild не развертывает выражения $() , передаваемые в командную строку, поэтому использовать синтаксис $(OutputPath) невозможно. In this case note that msbuild does not expand $() expressions passed in on the command line, so it is not possible to use the $(OutputPath) syntax. Вместо этого необходимо предоставить полный путь. You must instead provide a full path name.

В Mac он будет иметь следующий вид: Or the following on Mac:

После того как была создана и архивирована сборка для распространения, все готово для отправки приложения в iTunes Connect. With your distribution build created and archived, you are now ready to submit your application to iTunes Connect.

Сводка Summary

В этой статье описывались процедуры настройки, создания и отправки приложения iOS для публикации в App Store. This article described how to configure, build, and submit an iOS app for release on the App Store.

Подготовка и публикация приложения в App Store

Дорогие друзья, в этой статье я буду описывать весь процесс подготовки приложения для его публикации в App Store. В первую очередь я делаю это для себя, чтобы было где подсмотреть если что-то забуду, ну и конечно статья будет полезна всем тем, кто тоже хочет выложить своё приложение.

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

Моё приложение уже готово, я использовал Xcode 6.3.2, но у вас может быть и другая версия, это не принципиально. Итак, что нужно сделать:

1. Создать сертификат дистрибутора;

2. Создать идентификатор приложения;

3. Создать профайл дистрибутора;

4. Подготовить приложение для публикации;

5. Создать образ приложения в Itunesconnect;

6. Загрузить приложение в Itunes;

Создаём сертификат и профайл дистрибутора

Заходим в свой аккаунт на http://developer.apple.com и переходим в раздел Certificates, Identifiers & Profiles.

На этой странице в разделе iOS Apps переходим в Certificates.

Здесь нам нужно создать сертификат дистрибутора (ссылка Production). Нажимаем плюсик в правом верхнем углу.

Вам будет предложено несколько типов сертификата, нужно выбрать App Store and Ad Hoc.

Далее необходимо войти в Связку ключей > Ассистент сертификации > Запросить сертификат у бюро сертификации.

В открывшемся окне отметьте Запрос «Сохранён на диск», введите ваш адрес электронной почты и имя пользователя. Поле «Адрес e-mail БС» остаётся пустым. Нажимаем продолжить и сохраняем созданный файл.

Теперь возвращаемся на портал разработчика, нажимаем Continue и выбираем только что созданный файл. Затем нажимаем кнопку Generate.

Сохраните сгенерированный сертификат и запустите его, в результате чего он сохранится в связке ключей.

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

На портале разработчика переходим по ссылке App IDs в разделе Identifiers. Нажимаем плюсик чтобы добавить новый идентификатор.

Здесь вводим название приложения и Bundle ID, точно так же как он написан в Xcode (например ru.superwork). Далее галочками отмечаем сервисы которые использует приложение и нажимаем Continue.

Проверяем все введённые данные и нажимаем Submit. Поздравляю, идентификатор приложения создан!

Создаём профайл дистрибутора

Теперь необходимо создать профайл дистрибутора, для этого переходим в Distribution в разделе Provisioning Profiles. Там нажимаем + чтобы создать новый профайл.

В разделе Didtribution выбираем App Store. Идём далее нажав Continue. На следующей странице в выпадающем списке выбираем идентификатор вашего приложения. Далее выбираем созданный ранее сертификат дистрибутора и нажимаем Continue. Осталось только вписать название профайла и нажать Generate. Теперь сохраняем получившийся профайл на компьютер и перетаскиваем на иконку Xcode, таким образом он добавится в библиотеку.

Подготавливаем приложение для публикации

Запустите Xcode и проверьте чтобы в поле Bundle Identifier был введён такой же идентификатор как на портале разработчика (см. выше).

Ставим версию приложения (если публикуете первый раз, оставляйте 1.0) И подключаем аккаунт разработчика к программе (раздел Team > Add an Account…)

Tеперь я хочу обратить ваше внимание на иконку приложения. Дело в том, что если вы ещё этого не делали, вам нужно создать иконку приложения в нескольких размерах. Нажимаем на папку Images.xcassets в навигаторе и переходим в AppIcon.

Вам нужно создать иконки следующих размеров:

icon29pt@2x.png — 58x58px

icon29pt@3x.png — 87x87px

icon40pt@2x.png — 80x80px

icon40pt@3x.png — 120x120px

icon60pt@2x.png — 120x120px

icon60pt@3x.png — 180x180px

И перетаскиваем их на свои места.

Далее создаём LaunchImage (картинку при загрузке). Для этого нажимаем плюсик внизу и выбираем New Launch Image.

Здесь опять же для каждого разрешения нужно сделать свою картинку, размеры будут следующими:

Default.png (320x480px) – «iPhone Portrait iOS5,6 – 1x»

Default@2x.png (640x960px) – «iPhone Portrait iOS5,6 – 2x» и «iPhone Portrait iOS7,8 – 2x»

Default-568h@2x.png (640x1136px) – «iPhone Portrait iOS5,6 – Retina 4» and «iPhone Portrait iOS7,8 – Retina 4»

Default-iPhone6.png (750 x 1334) – «iPhone Portrait iOS8 – Retina HD 4.7»

Default-iPhone6Plus.png (1242 x 2208) – «iPhone Portrait iOS8 – Retina HD 5.5» и «iPhone Landscape iOS8 – Retina HD 5.5»

Для айпада размеры не пишу, т.к. делаю приложение только под айфон. Обратите внимание. чтобы в названии файлов были @2x и @3x, как это показано в примерах.

Создаём образ приложения в Itunnesconnect.

Заходим в http://itunesconnect.apple.com и переходим по ссылке Мои приложения. Нажимаем плюсик и выбираем Новое приложение для iOS.

Название — придумываем название приложения, потом его можно будет поменять.

Версия — версия приложения (например 1.0)

Основной язык — выбираем язык из выпадающего списка.

SKU — латинскими буквами название приложения.

ID пакета — выбираем ранее созданный идентификатор приложения, если его ещё не создали, или он не появился в списке, то нажмите Зарегистрировать новый ID на странице Портал для разработчиков и сделайте это.

Далее мы попадаем на страницу с информацией о приложении. Здесь нужно добавить значок приложения, который будет отображаться в App Store, его размер должен быть 1024×1024, скриншоты (снимки экрана) приложения, его название, описание и ключевые слова. Края скруглять не нужно, система сама это сделает за вас.

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

Размеры скриншотов должны быть следующие:

Device Size Portrait dimensions (pixels) Landscape dimensions (pixels)
iPad Pro 12.9 inches 2048px × 2732px 2732px × 2048px
iPad Pro 10.5 inches 1668px × 2224px 2224px × 1668px
iPad 9.7 inches 1536px × 2048px 2048px × 1536px
iPad mini 7.9 inches 1536px × 2048px 2048px × 1536px
iPhone X 5.8 inches 1125px × 2436px 2436px × 1125px
iPhone 8 Plus 5.5 inches 1242px × 2208px 2208px × 1242px
iPhone 8 4.7 inches 750px × 1334px 1334px × 750px
iPhone 7 Plus 5.5 inches 1242px × 2208px 2208px × 1242px
iPhone 7 4.7 inches 750px × 1334px 1334px × 750px
iPhone 6s Plus 5.5 inches 1242px × 2208px 2208px × 1242px
iPhone 6s 4.7 inches 750px × 1334px 1334px × 750px
iPhone SE 4 inches 640px × 1136px 1136px × 640px
Apple Watch 42 mm 312px × 390px 390px × 312px
Apple Watch 38 mm 272px × 340px 340px × 272px

Сохраняемся. Если вы всё заполнили, то осталось только добавить сборку приложения.

Создаём архив и загружаем приложение в Itunesconnect через Xcode.

в симуляторе выбираем реальное устройство (iOS Device), далее в пункте меню Product нажимаем на Archive, в результате запустится процесс архивации.

Когда всё будет готово — откроется окно органайзера. Перед тем как загружать приложение, проверьте его на ошибки нажав на Validate, если всё нормально вы получите соответствующее сообщение.

Осталось немного, нажимаем на Submit и ждём несколько минут пока приложение не загрузится в Itunesconnect.

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

Итак, возвращаемся в образ вашего приложения на Itunesconnest и выбираем только что загруженный архив в разделе Сборка. Обратите внимание, что он (архив) там может появиться не сразу, нужно подождать некоторое время.

Не забудьте в разделе ценообразование указать стоимость приложения, у меня оно бесплатное. поэтому в списке Ценовой ярус я выбрал Free.

Если всё заполнено, можно отправлять приложение на проверку. Вас ещё попросят ответить на несколько несложных вопросов о приложении.

Проверка занимает около 2 недель, о результатах вы получите соответствующее уведомление на E-mail.

Узнать более подробно про публикацию приложения в App Store вы можете в моём курсе «Как сделать iOS приложение и опубликовать его в App Store».

В данном курсе вы узнаете:

  1. Какие программы понадобятся для создания приложения
  2. Все способы разработки/создания iOS приложений
  3. Как зарегистрироваться в App Store
  4. Сделаете своё первое iOS приложение c помощью шаблонного проекта
  5. Сделаете приложение по поиску авиабилетов
  6. Научитесь работать с конструктором приложений
  7. Узнаете как подготовить приложение к публикации
  8. Познакомитесь с секретами ASO оптимизации
  9. Узнаете способы заработка на приложениях
  10. Как настроить рекламу Search Ads

Этот курс подойдёт вам, если вы хотите сделать своё собственное iOS приложение — для себя или для своей компании, с минимальным бюджетом и без навыков программирования. Он станет вашим первым шагом в захватывающий мир App Store!

Курс постоянно дорабатывается, поэтому вы будете получать все обновления онлайн, абсолютно бесплатно.

Мое приложение содержит «шифрование» правил магазина App Store

У меня есть приложение, которое использует keychain для «сохранения функции пароля». Когда пользователь регистрируется в пароле приложения, зашифровывается с помощью нашего алгоритма, сделанного пользователем, а затем отправляется на сервер по http/https (пользователь сам определяет URL-адрес сервера, приложение является частью сложной системы, предоставляемой нашей фирмой, а не автономным приложением для каждого пользователя), затем сервер расшифровывает и шифрует другой алгоритм и проверяет наличие в базе данных. Наше приложение не будет опубликовано в США и Европе только сейчас.

Теперь мы собираемся опубликовать приложение в App Store, и мне интересно, относится ли оно к правилам. Я знаю, что https теперь освобожден, но как насчет того, когда в сочетании с keychain + custom encryption для входа?

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих