Файл iTunesMetadata.plist в приложениях Xamarin.iOS
В статье описывается файл iTunesMetadata.plist, который предоставляет в iTunes информацию о приложении при прямом распространении для тестирования или корпоративного развертывания.
При создании приложения в iTunes Connect (для продажи или для бесплатного распространения через iTunes App Store) разработчик может указать сведения, такие как жанр приложения, поджанр, уведомление об авторских правах, поддерживаемые устройства iOS и требуемые параметры устройства. В распространяемых напрямую приложениях iOS, предназначенных для тестировщиков или корпоративных пользователей, эта информация отсутствует.
Для предоставления этой информации при распространении напрямую можно создать и включить в IPA необязательный файл iTunesMetadata.plist
. PLIST-файл представляет собой XML-файл со специальным форматированием (подробные сведения см. в разделе Руководство по программированию списка свойств Apple), который содержит пары "ключ-значение", задающие сведения об этом приложении iOS.
Содержимое файла iTunesMetadata.plist
Ниже представлен типовой пример файла iTunesMetadata.plist
, используемого для предоставления iTunes сведений при прямом распространении:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>UIRequiredDeviceCapabilities</key>
<dict>
<key>armv7</key>
<true/>
<key>front-facing-camera</key>
<true/>
</dict>
<key>artistName</key>
<string>Company, Inc.</string>
<key>bundleDisplayName</key>
<string>App Name</string>
<key>bundleShortVersionString</key>
<string>1.5.1</string>
<key>bundleVersion</key>
<string>1.5.1</string>
<key>copyright</key>
<string>© 2015 Company, Inc.</string>
<key>drmVersionNumber</key>
<integer>0</integer>
<key>fileExtension</key>
<string>.app</string>
<key>gameCenterEnabled</key>
<false/>
<key>gameCenterEverEnabled</key>
<false/>
<key>genre</key>
<string>Games</string>
<key>genreId</key>
<integer>6014</integer>
<key>itemName</key>
<string>App Name</string>
<key>kind</key>
<string>software</string>
<key>playlistArtistName</key>
<string>Company, Inc.</string>
<key>playlistName</key>
<string>App Name</string>
<key>releaseDate</key>
<string>2015-11-18T03:23:10Z</string>
<key>s</key>
<integer>143441</integer>
<key>softwareIconNeedsShine</key>
<false/>
<key>softwareSupportedDeviceIds</key>
<array>
<integer>9</integer>
</array>
<key>softwareVersionBundleId</key>
<string>com.company.appid</string>
<key>subgenres</key>
<array>
<dict>
<key>genre</key>
<string>Puzzle</string>
<key>genreId</key>
<integer>7012</integer>
</dict>
<dict>
<key>genre</key>
<string>Word</string>
<key>genreId</key>
<integer>7019</integer>
</dict>
</array>
<key>versionRestrictions</key>
<integer>16843008</integer>
</dict>
</plist>
Значения каждого ключа будут подробно рассмотрены ниже.
UIRequiredDeviceCapabilities
Ключ UIRequiredDeviceCapabilities
сообщает iTunes, какие функции должно поддерживать конкретное устройство для установки приложения на это устройство iOS. Ключ состоит из словаря (<dict>...</dict>
) функций (<key>...</key>
), а также логического значения для каждой функции. Если значение для функции true
, то наличие этой функции необходимо. Если false
, то эта функция должна отсутствовать в устройстве. Например:
<key>UIRequiredDeviceCapabilities</key>
<dict>
<key>armv7</key>
<true/>
<key>front-facing-camera</key>
<true/>
</dict>
Указывает на то, что для установки данного приложения на устройство это устройство iOS должно поддерживать набор инструкций ARM7 и иметь фронтальную камеру. Полный список допустимых значений см. в разделе UIRequiredDeviceCapabilities документации корпорации Apple.
artistName и playlistArtistName
В ключах artistName
и playlistArtistName
указывается название компании, создавшей приложение. Название будет отображаться в iTunes. Пример:
<key>artistName</key>
<string>Company, Inc.</string>
...
<key>playlistArtistName</key>
<string>Company, Inc.</string>
bundleDisplayName, itemName и playlistName
В ключах bundleDisplayName
, itemName
и playlistName
указывается имя приложения iOS, которое будет отображаться в iTunes. Пример:
<key>bundleDisplayName</key>
<string>App Name</string>
...
<key>itemName</key>
<string>App Name</string>
...
<key>playlistName</key>
<string>App Name</string>
bundleShortVersionString и bundleVersion
В ключах bundleShortVersionString
и bundleVersion
указывается номер версии приложения iOS, который отображается в iTunes. Пример:
<key>bundleShortVersionString</key>
<string>1.5.1</string>
<key>bundleVersion</key>
<string>1.5.1</string>
softwareVersionBundleId
В ключе softwareVersionBundleId
указывается идентификатор пакета приложения. Пример:
<key>softwareVersionBundleId</key>
<string>com.company.appid</string>
copyright
В ключе copyright
указывается уведомление об авторских правах, которое отображается в iTunes. Пример:
<key>copyright</key>
<string>© 2015 Company, Inc.</string>
releaseDate
В ключе releaseDate
указывается дата выпуска приложения iOS. Дата выпуска отображается в iTunes. Пример:
<key>releaseDate</key>
<string>2015-11-18T03:23:10Z</string>
softwareIconNeedsShine
В ключе softwareIconNeedsShine
указывается, требуется ли подсветка значка приложения в iOS 6 (и ранее). Пример:
<key>softwareIconNeedsShine</key>
<false/>
gameCenterEnabled и gameCenterEverEnabled
Ключи gameCenterEnabled
и gameCenterEverEnabled
сообщают iTunes, поддерживает ли это приложение Apple Game Center. Пример:
<key>gameCenterEnabled</key>
<false/>
<key>gameCenterEverEnabled</key>
<false/>
genre, genreId и subgenres
Ключи genre
и genreId
сообщают iTunes, к какому жанру относится приложение. Пример:
<key>genre</key>
<string>Games</string>
<key>genreId</key>
<integer>6014</integer>
Дополнительно можно использовать ключ subgenres
для определения до двух поджанров приложения iOS. Пример:
<key>subgenres</key>
<array>
<dict>
<key>genre</key>
<string>Puzzle</string>
<key>genreId</key>
<integer>7012</integer>
</dict>
<dict>
<key>genre</key>
<string>Word</string>
<key>genreId</key>
<integer>7019</integer>
</dict>
</array>
Apple определяет следующие жанры и идентификаторы жанров для приложений iOS:
Идентификатор жанра | Название жанра |
---|---|
6000 | Триггер |
6001 | Погода |
6002 | Служебные инструменты |
6003 | Поездка |
6004 | Спорт |
6005 | Социальные сети |
6006 | Справочные материалы |
6007 | Продуктивность |
6008 | Фото и видео |
6009 | News |
6010 | Область |
6011 | Музыка |
6012 | Образ жизни |
6013 | Здоровье и фитнес |
6014 | Игры |
6015 | Finance |
6016 | Развлечения |
6017 | Образование |
6018 | Книги |
6020 | Медицинское обслуживание |
6021 | Киоск |
6022 | Каталоги |
Поджанры игр (6014):
Идентификатор жанра | Название жанра |
---|---|
7001 | Действие |
7002 | Adventure |
7003 | Аркады |
7004 | Board |
7005 | Карточка |
7006 | Казино |
7007 | Кости |
7008 | Образование |
7009 | Семья |
7010 | Дети" |
7011 | Музыка |
7012 | Паззл |
7013 | Гонки |
7014 | Ролевые игры |
7015 | Simulation |
7016 | Спорт |
7017 | Стратегия |
7018 | Викторины |
7019 | Word |
Поджанры новостей (6021):
Идентификатор жанра | Название жанра |
---|---|
13001 | Новости и политика |
13002 | Мода и стиль |
13003 | Дом и сад |
13004 | Туризм и природа |
13005 | Спорт и досуг |
13006 | Автомобильная промышленность |
13007 | Искусство и фотография |
13008 | Свадьбы |
13009 | Бизнес и инвестиции |
13010 | Журналы для детей |
13011 | Компьютеры и Интернет |
13012 | Приготовление еды и напитков |
13013 | Ремесла и хобби |
13014 | Электронные устройства и аудио |
13015 | Развлечения |
13017 | Здоровье, ум и тело |
13018 | Журнал |
13019 | Литературные журналы и альманахи |
13020 | Мужчины |
13021 | Видео и музыка |
13023 | Родительство и семья |
13024 | Животные |
13025 | Профессиональные навыки и торговля |
13026 | Региональные новости |
13027 | Наука |
13028 | Подростки |
13029 | Путешествия |
13030 | Женщины |
softwareSupportedDeviceIds
Ключ softwareSupportedDeviceIds
сообщает iTunes, какие устройства с iOS поддерживает это приложение. Пример:
<key>softwareSupportedDeviceIds</key>
<array>
<integer>9</integer>
</array>
Допустимы следующие значения:
- 1 — классические iPhone
- 2 — iPod Touch
- 4 — iPad
- 9 — современные iPhone
Стандартные ключи
Следующие ключи содержатся во всех файлах iTunesMetadata.plist
всех приложений iOS и всегда имеют одни и те же значения:
<key>drmVersionNumber</key>
<integer>0</integer>
<key>fileExtension</key>
<string>.app</string>
...
<key>kind</key>
<string>software</string>
...
<key>s</key>
<integer>143441</integer>
...
<key>versionRestrictions</key>
<integer>16843008</integer>
Создание файла iTunesMetadata.plist
При работе с файлом iTunesMetadata.plist
в Visual Studio для Mac возможны два варианта:
- Создать и настроить файл а визуальном редакторе файлов plist Visual Studio для Mac.
- Создать и настроить файл в текстовом редакторе.
Ниже описываются оба способа.
Использование визуального редактора файлов plist
Выполните следующие действия.
В Обозревателе решений щелкните правой кнопкой на файле проекта Xamarin.iOS и выберите Добавить>Новый файл...
В диалоговом окне создания файла выберите iOS>Список свойств:
Введите в поле Имя значение
iTunesMetadata
и нажмите кнопку Новый.Для редактирования файла дважды щелкните на файле
iTunesMetadata.plist
в Обозревателе решений:Нажмите зеленый + для создания новой записи и введите
UIRequiredDeviceCapabilities
в качестве имени ключа:Нажмите на тип значение Строка и выберите Словарь в раскрывающемся списке:
Нажмите стрелку вниз слева от имени свойства, чтобы показать элементы словаря:
Нажмите на надпись Добавить запись, затем нажмите зеленый + для добавления записи в словарь:
Введите
armv7
в качестве имени ключа, выберите тип Логическое и введите Да в качестве значения:Повторяйте эти шаги, пока не заполните все необходимые пары ключ/значение в файле
iTunesMetadata.plist
(подробные сведения см. в разделе Содержимое файла iTunesMetadata.plist).Сохраните изменения в файле plist.
Использование текстового редактора
Выполните следующие действия.
- Создайте в текстовом редакторе новый файл и назовите его
iTunesMetadata.plist
. - Скопируйте пример содержимого файла из раздела Содержимое файла iTunesMetadata.plist выше.
- Вставьте содержимое в файл и отредактируйте его под свои нужды.
- Сохраните файл и вернитесь в Visual Studio для Mac.
- В Обозревателе решений щелкните правой кнопкой на файле проекта Xamarin.iOS и выберите Добавить>Существующие файлы....
- В диалоговом окне открытия файла выберите файл
iTunesMetadata.plist
, который мы создали выше, и нажмите кнопку OK. - Оставьте значение поля Действие при построении в значении Нет.
Позднее выберите файл iTunesMetadata.plist
при подготовке к сборке IPA-файла в среде разработки.
Итоги
Статья описывает файл iTunesMetadata.plist
, который используется для предоставления информации iTunes о распространяемом напрямую приложении iOS. Приведено описание стандартных ключей в файле plist, а также процесс создания и настройки файла в Visual Studio и Visual Studio для Mac.