Ожидаемые способы поведения приложения
Каждый новый проект XCode прибывает сконфигурированный для выполнения сразу же в Средстве моделирования iOS или на устройстве. Но просто способность работать на устройстве не означает, что Ваше приложение готово поставить на App Store. Каждое приложение требует, чтобы некоторая сумма настройки гарантировала хороший опыт для пользователя. Настройки могут колебаться от обеспечения значка для Вашего приложения к принятию решений архитектурного уровня относительно как Ваша информация о подарках и использовании приложения. В этой главе описываются способы поведения, которые все приложения, как ожидают, обработают и что необходимо рассмотреть рано в процессе планирования.
Обеспечение требуемых ресурсов
Каждое приложение, которое Вы создаете, должно иметь следующий набор ресурсов и метаданных так, чтобы это могло быть выведено на экран должным образом на устройствах на iOS:
Информационный файл списка свойств.
Info.plist
файл содержит метаданные о Вашем приложении, который системное использование взаимодействовать с Вашим приложением. XCode создает этот файл для Вас автоматически на основе конфигурации и настроек Вашего проекта. Если Вы хотите просмотреть или изменить содержание этого файла непосредственно, можно сделать так от вкладки Info проекта. Для получения информации о редактировании этого файла и для рекомендаций о том, какие ключи необходимо включать, посмотрите информационный Файл Списка свойств.Объявление требуемых возможностей приложения. Каждое приложение должно объявить возможности оборудования или функции, которых оно требует для выполнения. App Store использует эту информацию, чтобы определить, может ли пользователь выполнить Ваше приложение на определенном устройстве. Можно отредактировать список приложения требований с помощью записи возможностей Выбранного устройства на вкладке Info проекта. Для получения информации о том, как сконфигурировать этот ключ, посмотрите Объявление Возможностей Выбранного устройства.
Один или более значков. Система выводит на экран Ваш значок приложения на домашнем экране устройства пользователя. Система может также использовать другие версии Вашего значка в приложении Настроек или при отображении результатов поиска. Для получения информации о том, как указать значки приложения, посмотрите значки приложения.
Одно или более изображений запуска. Когда приложение запускается, система выводит на экран временное изображение, пока приложение не в состоянии представить свой пользовательский интерфейс. Это временное изображение является изображением запуска Вашего приложения, и это предоставляет пользователю непосредственную обратную связь, которую Ваше приложение запускает и скоро будет готово. Необходимо обеспечить по крайней мере одно изображение запуска для приложения, и можно обеспечить дополнительные изображения запуска для обращения определенных сценариев. Для получения информации о создании Ваших изображений запуска посмотрите Запуск Приложения Изображения (По умолчанию).
Эти ресурсы требуются для всех приложений, но не являются единственными, которые необходимо включать. Существует много ключей, которые XCode не включает в Ваше приложение Info.plist
файл по умолчанию. Большинство дополнительных ключей важно, только если Вы включаете определенные функции в свое приложение. Например, приложение, использующее микрофон, должно включать NSMicrophoneUsageDescription
ключ и предоставляет пользователю информацию о том, как приложение намеревается использовать его.
Комплект приложений
При создании приложения для iOS XCode упаковывает его как пакет. Пакет является каталогом в файловой системе, собирающей в группу связанные ресурсы в одном месте. Пакет приложения для iOS содержит исполняемый файл приложения и поддерживающий файлы ресурсов, такие как значки приложения, файлы образа и локализованное содержание. Таблица 1-1 перечисляет содержание типичного пакета приложения для iOS, который в демонстрационных целях вызывают MyApp
. Этот пример в иллюстративных целях только. Некоторые файлы, перечисленные в этой таблице, могут не появиться в Ваших собственных комплектах приложений.
Файл | Пример | Описание |
---|---|---|
Исполнимая программа приложения |
| Исполняемый файл содержит скомпилированный код Вашего приложения. Имя исполняемого файла Вашего приложения совпадает с Вашим именем приложения минус Этот файл требуется. |
| Этого файла требуют и нужно вызвать | |
Значки приложения |
| Ваш значок приложения используется для представления приложения на домашнем экране устройства. Другие значки используются системой в надлежащих местах. Значки с Значок приложения требуется. Для получения информации об указании файлов образа значка посмотрите значки приложения. |
Изображения запуска |
| В то время как Ваше приложение запускается, система использует этот файл в качестве временного фона. Это удалено, как только Ваше приложение готово вывести на экран свой пользовательский интерфейс. По крайней мере одно изображение запуска требуется. Для получения информации об указании изображений запуска посмотрите Запуск Приложения Изображения (По умолчанию). |
Файлы раскадровки (или файлы пера) |
| Раскадровки содержат представления и просматривают контроллеры, которые приложение представляет на экране. Представления в раскадровке организованы согласно контроллеру представления, представляющему их. Раскадровки также идентифицируют переходы (названный переходами), которые берут пользователя от одного набора представлений другому. Имя основного файла раскадровки определяется XCode при создании проекта. Можно изменить имя путем присвоения различного значения Использование раскадровок (или файлы пера) является дополнительным, но рекомендовано. |
Оперативный значок распределения |
| Если Вы распределяете свое приложение оперативно, включаете версию на 512 x 512 пикселей Вашего значка приложения. Этот значок обычно предоставлен App Store от материалов, которые Вы представляете Подключению iTunes. Однако, потому что приложения распределили, оперативно не проходят через App Store, Ваш значок должен присутствовать в Вашем комплекте приложений вместо этого. iTunes использует этот значок для представления приложения. (Файл, который Вы указываете, должен быть тем же самым, Вы подчинились бы App Store, если Вы распределяли свое приложение тот путь.) Имя файла этого значка должно быть |
Пакет настроек |
| Если Вы хотите представить предпочтения пользовательского приложения через приложение Настроек, необходимо включать пакет настроек. Этот пакет содержит данные списка свойств и другие файлы ресурсов, определяющие Ваши предпочтения приложения. Приложение Настроек использует информацию в этом пакете для сборки интерфейсных элементов, требуемых приложением. Этот пакет является дополнительным. Для получения дополнительной информации о предпочтениях и указании пакета настроек, см. Руководство по программированию Предпочтений и Настроек. |
Нелокализованные файлы ресурсов |
| Нелокализованные ресурсы включают вещи как изображения, звуковые файлы, фильмы и пользовательские файлы данных, которые использует Ваше приложение. Все эти файлы должны быть помещены в верхний уровень Вашего комплекта приложений. |
Подкаталоги для локализованных ресурсов |
| Локализованные ресурсы должны быть помещены в специфичные для языка каталоги проекта, имена, для которых состоят из ISO сокращение языка 639-1 плюс Приложение для iOS должно интернационализироваться и иметь язык Для получения дополнительной информации посмотрите Интернационализацию Вашего Приложения. |
Для получения дополнительной информации о структуре пакета приложения для iOS, см. Руководство по программированию Пакета. Для получения информации о том, как загрузить файлы ресурсов из Вашего пакета, см. Руководство по программированию Ресурса.
Информационный файл списка свойств
XCode использует информацию от Генерала, Возможностей и Информационных вкладок Вашего проекта генерировать информационный список свойств (Info.plist
) файл для Вашего приложения во время компиляции. Info.plist
файл является структурированным файлом, содержащим критическую информацию о конфигурации Вашего приложения. Это используется App Store и iOS, чтобы определить возможности Вашего приложения и определить местоположение ключевых ресурсов. Каждое приложение должно включать этот файл.
Несмотря на то, что Info.plist
файл, предоставленный XCode, включает значения по умолчанию для всех требуемых записей, большинство приложений требует некоторых изменений или дополнений. Каждый раз, когда возможно, используйте Общие вкладки и вкладки Возможностей для указания конфигурационной информации для приложения. Те вкладки содержат наиболее распространенные параметры конфигурации, доступные для приложений. Если Вы не видите определенную опцию ни на одной из тех вкладок, используйте вкладку Info.
Для опций, где XCode не обеспечивает интерфейс пользовательской конфигурации, необходимо обеспечить надлежащие ключи и значения. Пользовательский раздел Target Properties iOS вкладки Info содержит сводку записей, которые будут включены в Info.plist
файл. По умолчанию XCode выводит на экран человекочитаемые описания намеченной функции, но каждая функция фактически соответствует уникальному ключу в Info.plist
файл. Большинство ключей является дополнительным и используется нечасто, но существует ряд ключей, которые необходимо рассмотреть при определении любого нового проекта:
Объявите требуемые возможности своего приложения на вкладке Info. Раздел возможностей Выбранного устройства содержит информацию о функциях уровня устройств, которых Ваше приложение требует для выполнения. App Store использует информацию в этой записи, чтобы определить возможности Вашего приложения и препятствовать тому, чтобы он был установлен на устройствах, не делающих функций поддержки, которых требует Ваше приложение. Для получения дополнительной информации посмотрите Объявление Возможностей Выбранного устройства.
Приложения, требующие персистентного соединения Wi-Fi, должны объявить тот факт. Если Ваше приложение говорит с сервером по сети, можно добавить, что Приложение использует запись Wi-Fi во вкладку Info проекта. Эта запись соответствует
UIRequiresPersistentWiFi
ключInfo.plist
файл. Устанавливание этого ключа кYES
препятствует тому, чтобы iOS закрыл активное соединение Wi-Fi, когда это было неактивно в течение длительного периода времени. Этот ключ рекомендуется для всех приложений, использующих сеть для передачи с сервером.Приложения киоска должны объявить себя как таковой. Включайте
UINewsstandApp
ключ, чтобы указать, что Ваше приложение представляет содержание из приложения Киоска.Приложения, определяющие пользовательские типы документов, должны объявить те типы. Используйте раздел Document Types вкладки Info для указания значков и информации UTI для форматов документов, которые Вы поддерживаете. Система использует эту информацию для идентификации приложений, способных к обработке определенных типов файлов. Для получения дополнительной информации о добавляющей поддержке документа Вашему приложению, см. Основанное на документе Руководство по программированию Приложения для iOS.
Приложения могут объявить любые пользовательские схемы URL, которые они поддерживают. Используйте раздел URL Types вкладки Info для указания пользовательских схем URL, которые обрабатывает приложение. Приложения могут использовать пользовательские схемы URL связаться друг с другом. Для получения дополнительной информации о том, как реализовать поддержку этой функции, посмотрите Используя Схемы URL Связаться с Приложениями.
Приложения должны предоставить описания использования для определенных функций приложения. Каждый раз, когда существует беспокойство конфиденциальности по поводу приложения, получающего доступ к данным пользователя или возможностям устройства, платформы iOS предлагают пользователю и запрашивают разрешение на Ваше приложение использовать функцию. Приложения, использующие эти функции, должны предоставить описания использования конфиденциальности, объясняющие, что Ваше приложение планирует сделать с соответствующими данными. Для получения информации о функциях, требующих полномочий пользователя, посмотрите Таблицу 1-2.
Для получения дальнейшей информации о ключах и значениях можно включать в Info.plist
файл, посмотрите информационную Ключевую Ссылку Списка свойств.
Объявление возможностей выбранного устройства
Все приложения должны объявить специфичные для устройства возможности, которые они должны выполнить. XCode включает запись возможностей Выбранного устройства во вкладку Info Вашего проекта и заполняет ее с некоторыми минимальными требованиями. Вы можете добавленные стоимости к этой записи для указания дополнительных требований для приложения. Запись возможностей Выбранного устройства соответствует UIRequiredDeviceCapabilities
введите свое приложение Info.plist
файл.
Значение UIRequiredDeviceCapabilities
ключ является или массивом или словарем, содержащим дополнительные ключевые функции идентификации, которых Ваше приложение требует (или в частности запрещает). При указании значения ключа с помощью массива присутствие ключа указывает, что требуется функция; отсутствие ключа указывает, что функция не требуется и что приложение может работать без него. При указании словаря вместо этого, каждый ключ в словаре должен иметь булево значение, указывающее, требуется ли функция или запрещается. Значение true
указывает, что функция требуется и значение false
указывает, что функция не должна присутствовать на устройстве. Если данная возможность является дополнительной для Вашего приложения, не включайте соответствующий ключ в словаре.
Для получения дальнейшей информации на значениях можно включать для UIRequiredDeviceCapabilities
ключ, посмотрите информационную Ключевую Ссылку Списка свойств.
Значки приложения
Каждое приложение должно обеспечить значок, который будет выведен на экран на домашнем экране устройства и в App Store. Приложение может фактически указать несколько различных значков для использования в различных ситуациях. Например, приложение может обеспечить маленький значок для использования при отображении результатов поиска и может обеспечить значок с высокой разрешающей способностью для устройств с дисплеями Сетчатки.
Новые проекты XCode включают записи актива изображения для изображений значка Вашего приложения. Для добавления значков присвойте соответствующие файлы образа активам изображения проекта. Во время изготовления XCode добавляет надлежащие ключи к Вашему приложению Info.plist
файл и места изображения в Вашем комплекте приложений.
Для получения информации о разработке Ваших значков приложения, включая размеры тех значков, см. Инструкции по Интерфейсу пользователя iOS.
Запуск приложения изображения (по умолчанию)
Когда система запускает приложение впервые на устройстве, она временно выводит на экран статическое изображение запуска на экране. Это изображение является изображением запуска Вашего приложения, и это - ресурс, который Вы указываете в своем проекте XCode. Изображения запуска предоставляют пользователю непосредственную обратную связь, которую Ваше приложение запустило при предоставлении времени приложения для подготовки его интерфейса исходного пользователя. Когда окно Вашего приложения сконфигурировано и готово быть выведенным на экран, система выгружает изображение запуска для того окна.
Когда недавний снимок пользовательского интерфейса Вашего приложения доступен, система предпочитает использование того изображения по использованию изображений запуска Вашего приложения. Система берет снимок пользовательского интерфейса Вашего приложения когда Ваши переходы приложения от переднего плана до фона. Когда Ваше приложение возвращается в передний план, оно использует то изображение вместо изображения запуска, когда это возможно. В случаях, где пользователь уничтожил Ваше приложение или Ваше приложение, не работал в течение длительного времени, система отбрасывает снимок и полагается еще раз на Ваши изображения запуска.
Новые проекты XCode включают записи актива изображения для изображений запуска Вашего приложения. Для добавления изображений запуска добавьте соответствующие файлы образа к активам изображения проекта. Во время изготовления XCode добавляет надлежащие ключи к Вашему приложению Info.plist
файл и места изображения в Вашем комплекте приложений.
Для получения информации о разработке изображений запуска Вашего приложения, включая размеры тех изображений, см. Инструкции по Интерфейсу пользователя iOS.
Поддержка пользовательской конфиденциальности
Поддержание пользовательской конфиденциальности должно быть важным рассмотрением при разработке приложения. Большинство устройств на iOS содержит пользователя и данные устройства, которые пользователи не могли бы хотеть представлять приложениям или внешним объектам. Помните, что пользователь мог бы удалить Ваше приложение, если оно использует данные несоответствующим способом.
Пользователь доступа или данные устройства только с информированным согласием пользователя, полученным в соответствии с применимыми правовыми нормами. Кроме того, предпримите надлежащие шаги, чтобы защитить пользователя и данные устройства и быть прозрачными о том, как Вы используете их. Вот некоторые методы наиболее успешной практики, которые можно взять:
Инструкции по анализу от правительства или отраслевых источников, включая следующие документы:
Отчет Федеральной торговой комиссии относительно конфиденциальности мобильной связи: Сведения Конфиденциальности мобильной связи: Строение Доверительных отношений Через Прозрачность.
Мнение комиссаров по Защите данных ЕС о защите данных для Мобильных приложений: http://ec .europa.eu/justice/data-protection/article-29/documentation/opinion-recommendation/files/2013/wp202_en.pdf
Японское министерство внутренних дел и инициатив конфиденциальности смартфона связи:
Инициатива конфиденциальности смартфона (2012):
Английский язык: http://www .soumu.go.jp/main_sosiki/joho_tsusin/eng/presentation/pdf/Initiative.pdf
Японский язык: http://www .soumu.go.jp/main_content/000171225.pdf
Инициатива конфиденциальности смартфона II (2013):
Английский язык: http://www .soumu.go.jp/main_sosiki/joho_tsusin/eng/presentation/pdf/Summary_II.pdf
Японский язык: http://www .soumu.go.jp/main_content/000247654.pdf
Рекомендации Калифорнийского генерального прокурора штата для конфиденциальности мобильной связи: Конфиденциальность на Движении: Рекомендации для Мобильной Экосистемы
Эти отчеты обеспечивают полезные рекомендации для защиты пользовательской конфиденциальности. Необходимо также рассмотреть эти документы с юрисконсультом компании.
Запросите доступ к пользователю или данным устройства, защищенным системными настройками авторизации iOS в то время, когда необходимы данные. Рассмотрите предоставление строки описания использования в Вашем приложении
Info.plist
файл, объясняющий, почему для Вашего приложения нужны те данные. Данные, защищенные системными настройками авторизации iOS, включают данные расположения, контакты, календарные события, напоминания, фотографии и носители; посмотрите Таблицу 1-2. Обеспечьте разумное поведение нейтрализации в ситуациях, где пользователь не предоставляет доступ к запрошенным данным.Будьте прозрачны с пользователями о том, как их данные будут используемыми. Например, необходимо указать URL для политики конфиденциальности или оператора с метаданными Подключения iTunes, когда Вы представляете свое приложение, и Вы могли бы также хотеть суммировать ту политику в своем описании приложения.
Для получения дополнительной информации об обеспечении политики конфиденциальности Вашего приложения в Подключении iTunes, посмотрите Добавление Приложения в Подключении iTunes.
Дайте контроль за работой пользователей по их пользователю или данным устройства. Обеспечьте настройки так, чтобы пользователь мог отключить доступ к определенным типам уязвимой информации по мере необходимости.
Запросите и используйте минимальную сумму пользователя, или данные устройства должны были выполнить данную задачу. Не запрашивайте доступ к или собирайте данные для не очевидные причины по ненужным причинам, или потому что Вы думаете, что это могло бы быть полезно позже.
Примите разумные меры для защиты пользователя и данных устройства, которые Вы собираете в своих приложениях. Храня такую информацию локально, попытайтесь использовать функцию защиты данных iOS (описанный в Защите Данных Используя Дисковое Шифрование) для хранения его в зашифрованном формате. И попытайтесь использовать HTTPS при отправке пользователю или данным устройства по сети.
Если Ваше приложение использует
ASIdentifierManager
класс, необходимо уважать значениеadvertisingTrackingEnabled
свойство. И если то свойство установлено вNO
пользователем затем используйтеASIdentifierManager
класс только в Ограниченных Рекламных Целях. “Ограниченные Рекламные Цели” означают ограничение частоты, приписывание, события преобразования, оценивая число уникальных пользователей, рекламного обнаружения мошенничества, отлаживая в рекламных целях только и другом использовании для распространения, которое может быть разрешено Apple в Документации для Поддержки Объявления APIs.Если Вы уже не сделали так, прекратите использовать уникальный идентификатор устройства (UDID), предоставленный
uniqueIdentifier
свойствоUIDevice
класс. То свойство осуждалось в iOS 5.0, и App Store не принимает новые приложения или обновления приложения то использование тот идентификатор. Вместо этого приложения должны использоватьidentifierForVendor
свойствоUIDevice
класс илиadvertisingIdentifier
свойствоASIdentifierManager
класс, как надлежащий.Если Ваш аудиовход поддержек приложений, сконфигурируйте свой аудио сеанс для записи только в точке, где Вы фактически планируете начать записывать. Не конфигурируйте свой аудио сеанс для записи во время запуска, если Вы не планируете записать сразу же. В iOS 7, системные пользователи предупреждений, когда приложения конфигурируют свой аудио сеанс для записи и дают пользователю опцию отключить запись для Вашего приложения.
Таблица 1-2 перечисляет типы полномочий данных, поддерживаемых iOS. Используя службы, перечисленные в этой таблице, заставляет предупреждение быть выведенным на экран пользователю, запрашивающему разрешение сделать так. Можно определить, авторизовал ли пользователь приложение для службы с помощью API, перечисленного для каждого элемента. Необходимо просмотреть эту таблицу как начальную точку для собственных способов поведения конфиденциальности приложения и не как конечный контрольный список. Содержание этой таблицы может развиваться в течение долгого времени.
Данные | Системная поддержка авторизации |
---|---|
Расположение | Текущее состояние авторизации для данных расположения доступно от |
Фотографии | Состояние авторизации для фото данных доступно от |
Музыка, видео и другие активы носителей | Состояние авторизации для активов носителей доступно от |
Контакты | Состояние авторизации для контактных данных доступно от |
Календарные данные | Состояние авторизации для календарных данных доступно от |
Напоминания | Состояние авторизации для данных напоминания доступно от |
Периферийные устройства Bluetooth | Состояние авторизации для периферийных устройств Bluetooth доступно от |
Микрофон | В iOS 7 и позже, состояние авторизации для микрофона доступно от |
Камера | В iOS 7 и позже, состояние авторизации для камеры доступно в |
Интернационализация Вашего приложения
Поскольку приложения для iOS распределяются во многих странах, локализование содержания Вашего приложения может помочь Вам достигнуть еще многих клиентов. Пользователи, намного более вероятно, будут использовать приложение, когда оно будет локализовано для их родного языка. Когда Вы фактор Ваше бывшее обращенным к пользователю содержание в файлы ресурсов, локализуя то содержание являетесь относительно простым процессом.
Прежде чем можно будет локализовать содержание, необходимо интернационализировать приложение для упрощения процесса локализации. Интернационализация Вашего приложения включает факторизацию любого бывшего обращенным к пользователю содержания в локализуемые файлы ресурсов и обеспечение специфичного для языка проекта (.lproj
) каталоги для хранения того содержания. Это также означает использовать соответствующие технологии (такие как дата и средства форматирования числа) при работе со специфичным для языка и специфичным для локали содержанием.
Для полностью интернационализировавшего приложения процесс локализации создает новые наборы специфичных для языка файлов ресурсов для Вас для добавления к проекту. Типичное приложение для iOS требует локализованных версий следующих типов файлов ресурсов:
Файлы раскадровки (или файлы пера) — Раскадровки могут содержать текстовые метки и другое содержание, которое должно быть локализовано. Вы могли бы также хотеть скорректировать позицию интерфейсных элементов для размещения изменений в текстовой длине. (Точно так же файлы пера могут содержать текст, который должен быть локализован или расположение, которое должно быть обновлено.)
Строковые файлы — Строковые файлы (так названный из-за их
.strings
расширение файла), содержат локализованные версии статического текста что Ваши отображения приложения.Файлы образа — необходимо избежать локализовать изображения, если изображения не содержат специфичное для культуры содержание. Каждый раз, когда возможно, необходимо избежать хранить текст непосредственно в файлах образа. Для изображений, которые Вы загружаете и используете из своего приложения, храните текст в строковом файле и составном объекте что текст с Вашим основанным на изображении содержанием во время выполнения.
Видеофайлы и аудиофайлы — необходимо избежать локализовать мультимедийные файлы, если они не содержат специфичное для языка или специфичное для культуры содержание. Например, Вы хотели бы локализовать видеофайл, содержавший дорожку голоса за кадром.
Для получения информации об интернационализации и процессе локализации, посмотрите Руководство по Интернационализации и Локализации. Для получения информации о надлежащем способе использовать файлы ресурсов в Вашем приложении, см. Руководство по программированию Ресурса.