Файл iTunesMetadata.plist в приложениях Xamarin.iOSThe iTunesMetadata.plist File in Xamarin.iOS Apps

В статье описывается файл iTunesMetadata.plist, который предоставляет в iTunes информацию о приложении при прямом распространении для тестирования или корпоративного развертывания.This article covers the iTunesMetadata.plist file used to provide information to iTunes about an iOS application using Ad Hoc distribution for either testing or Enterprise deployment.

При создании приложения в iTunes Connect (для продажи или для бесплатного распространения через iTunes App Store) разработчик может указать сведения, такие как жанр приложения, поджанр, уведомление об авторских правах, поддерживаемые устройства iOS и требуемые параметры устройства.When an iOS application is created in iTune Connect (either for sale or free release from the iTunes App Store), the developer can specify information such as the application's genre, sub genre, copyright notice, supported iOS devices and required device capabilities. В распространяемых напрямую приложениях iOS, предназначенных для тестировщиков или корпоративных пользователей, эта информация отсутствует.For iOS applications that are delivered either to testers or Enterprise user via ad hoc distribution, this information is missing.

Для предоставления этой информации при распространении напрямую можно создать и включить в IPA необязательный файл iTunesMetadata.plist.To supply the missing information to an Ad Hoc distribution, an optional iTunesMetadata.plist file can be created and included in the applications IPA file. PLIST-файл представляет собой XML-файл со специальным форматированием (подробные сведения см. в разделе Руководство по программированию списка свойств Apple), который содержит пары "ключ-значение", задающие сведения об этом приложении iOS.This plist file is a specially formatted XML file (see Apple's Property List Programming Guide for more information) that contains key/value pairs defining information about a given iOS application.

Содержимое файла iTunesMetadata.plistThe iTunesMetadata.plist Contents

Ниже представлен типовой пример файла iTunesMetadata.plist, используемого для предоставления iTunes сведений при прямом распространении:The following is an example of typical iTunesMetadata.plist file used to define the iTunes information for an Ad Hoc distribution:

<?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>

Значения каждого ключа будут подробно рассмотрены ниже.The values for the individual keys will be covered in detail below.

UIRequiredDeviceCapabilitiesUIRequiredDeviceCapabilities

Ключ UIRequiredDeviceCapabilities сообщает iTunes, какие функции должно поддерживать конкретное устройство для установки приложения на это устройство iOS.The UIRequiredDeviceCapabilities key lets iTunes know which device specific features an iOS application requires before it can be installed on a given iOS device. Ключ состоит из словаря (<dict>...</dict>) функций (<key>...</key>), а также логического значения для каждой функции.It is provided as a dictionary (<dict>...</dict>) of features (<key>...</key>) and a boolean value for each feature. Если значение для функции true, то наличие этой функции необходимо.If the value of a feature is true, then that feature must be present. Если false, то эта функция должна отсутствовать в устройстве.If it is false the feature must not be present on the device. Пример:For example:

<key>UIRequiredDeviceCapabilities</key>
<dict>
    <key>armv7</key>
    <true/>
    <key>front-facing-camera</key>
    <true/>
</dict>

Указывает на то, что для установки данного приложения на устройство это устройство iOS должно поддерживать набор инструкций ARM7 и иметь фронтальную камеру.Specifies that the iOS device must support the ARM7 instruction set and have a front-facing camera before this application can be installed on the device. Полный список допустимых значений см. в разделе UIRequiredDeviceCapabilities документации корпорации Apple.For a complete list of allowed values, please see Apple's UIRequiredDeviceCapabilities documentation.

artistName и playlistArtistNameartistName and playlistArtistName

В ключах artistName и playlistArtistName указывается название компании, создавшей приложение. Название будет отображаться в iTunes.Use the artistName and playlistArtistName keys to define the name of the company that created the iOS application that will be displayed in iTunes. ПримерExample:

<key>artistName</key>
<string>Company, Inc.</string>
...
<key>playlistArtistName</key>
<string>Company, Inc.</string>

bundleDisplayName, itemName и playlistNamebundleDisplayName, itemName, and playlistName

В ключах bundleDisplayName, itemName и playlistName указывается имя приложения iOS, которое будет отображаться в iTunes.Use the bundleDisplayName, itemName, and playlistName keys to define the name of the iOS application that will be displayed inside of iTunes. ПримерExample:

<key>bundleDisplayName</key>
<string>App Name</string>
...
<key>itemName</key>
<string>App Name</string>
...
<key>playlistName</key>
<string>App Name</string>

bundleShortVersionString и bundleVersionbundleShortVersionString and bundleVersion

В ключах bundleShortVersionString и bundleVersion указывается номер версии приложения iOS, который отображается в iTunes.Use the bundleShortVersionString and bundleVersion keys to define the iOS application version number that will be displayed in iTunes. ПримерExample:

<key>bundleShortVersionString</key>
<string>1.5.1</string>
<key>bundleVersion</key>
<string>1.5.1</string>

softwareVersionBundleIdsoftwareVersionBundleId

В ключе softwareVersionBundleId указывается идентификатор пакета приложения.Use the softwareVersionBundleId key to specify the Bundle ID for the iOS application. ПримерExample:

<key>softwareVersionBundleId</key>
<string>com.company.appid</string>

В ключе copyrightуказывается уведомление об авторских правах, которое отображается в iTunes.Use the copyright key to define the copyright notice that is displayed in iTunes. ПримерExample:

<key>copyright</key>
<string>© 2015 Company, Inc.</string>

releaseDatereleaseDate

В ключе releaseDate указывается дата выпуска приложения iOS. Дата выпуска отображается в iTunes.Use the releaseDate key to provide a release date for the iOS application that will be displayed in iTunes. ПримерExample:

<key>releaseDate</key>
<string>2015-11-18T03:23:10Z</string>

softwareIconNeedsShinesoftwareIconNeedsShine

В ключе softwareIconNeedsShine указывается, требуется ли подсветка значка приложения в iOS 6 (и ранее).Use the softwareIconNeedsShine key to tell iTunes if the iOS Application's icon requires a shine highlight for iOS 6 (and prior). ПримерExample:

<key>softwareIconNeedsShine</key>
<false/>

gameCenterEnabled и gameCenterEverEnabledgameCenterEnabled and gameCenterEverEnabled

Ключи gameCenterEnabled и gameCenterEverEnabled сообщают iTunes, поддерживает ли это приложение Apple Game Center.Use the gameCenterEnabled and gameCenterEverEnabled keys to tell iTunes is this iOS application supports Apple's Game Center. ПримерExample:

<key>gameCenterEnabled</key>
<false/>
<key>gameCenterEverEnabled</key>
<false/>

genre, genreId и subgenresgenre, genreId, and subgenres

Ключи genre и genreId сообщают iTunes, к какому жанру относится приложение.Use the genre and genreId keys to tell iTunes what genre the iOS application belongs to. ПримерExample:

<key>genre</key>
<string>Games</string>
<key>genreId</key>
<integer>6014</integer>

Дополнительно можно использовать ключ subgenres для определения до двух поджанров приложения iOS.Optionally the subgenres key can be used to further define up to two sub genres for the iOS application. ПримерExample:

<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:For iOS applications, Apple currently defines the following genres and genre IDs:

Идентификатор жанраGenre ID Название жанраGenre Name
60006000 BusinessBusiness
60016001 ПогодаWeather
60026002 Служебные программыUtilities
60036003 ПутешествияTravel
60046004 СпортSports
60056005 Социальные сетиSocial Networking
60066006 СсылкаReference
60076007 ПроизводительностьProductivity
60086008 Фото и видеоPhoto & Video
60096009 НовостиNews
60106010 НавигацияNavigation
60116011 МузыкаMusic
60126012 Образ жизниLifestyle
60136013 Здоровье и фитнесHealth & Fitness
60146014 ИгрыGames
60156015 Финансовый отделFinance
60166016 РазвлеченияEntertainment
60176017 ОбразованиеEducation
60186018 BooksBooks
60206020 МедицинаMedical
60216021 КиоскNewsstand
60226022 КаталогиCatalogs

Поджанры игр (6014):Games (6014) sub-genres:

Идентификатор жанраGenre ID Название жанраGenre Name
70017001 ДействиеAction
70027002 ПриключенияAdventure
70037003 АркадыArcade
70047004 ДоскаBoard
70057005 КартыCard
70067006 КазиноCasino
70077007 КостиDice
70087008 ОбразованиеEducational
70097009 СемействоFamily
70107010 ДетиKids
70117011 МузыкаMusic
70127012 ГоловоломкиPuzzle
70137013 ГонкиRacing
70147014 Ролевые игрыRole Playing
70157015 СимуляцииSimulation
70167016 СпортSports
70177017 СтратегияStrategy
70187018 ВикториныTrivia
70197019 СловоWord

Поджанры новостей (6021):Newstand (6021) sub-genres:

Идентификатор жанраGenre ID Название жанраGenre Name
1300113001 Новости и политикаNews & Politics
1300213002 Мода и стильFashion & Style
1300313003 Дом и садHome & Garden
1300413004 Туризм и природаOutdoors & Nature
1300513005 Спорт и досугSports & Leisure
1300613006 АвтомобилиAutomotive
1300713007 Искусство и фотографияArts & Photography
1300813008 СвадьбыBrides & Weddings
1300913009 Бизнес и инвестицииBusiness & Investing
1301013010 Журналы для детейChildren’s Magazines
1301113011 Компьютеры и ИнтернетComputers & Internet
1301213012 Приготовление еды и напитковCooking, Food & Drink
1301313013 Ремесла и хоббиCrafts & Hobbies
1301413014 Электронные устройства и аудиоElectronics & Audio
1301513015 РазвлеченияEntertainment
1301713017 Здоровье, ум и телоHealth, Mind & Body
1301813018 ЖурналHistory
1301913019 Литературные журналы и альманахиLiterary Magazines & Journals
1302013020 МужчиныMen’s Interest
1302113021 Видео и музыкаMovies & Music
1302313023 Родительство и семьяParenting & Family
1302413024 Домашние животныеPets
1302513025 Профессиональные навыки и торговляProfessional & Trade
1302613026 Региональные новостиRegional News
1302713027 НаукаScience
1302813028 ПодросткиTeens
1302913029 ПутешествияTravel & Regional
1303013030 ЖенщиныWomen’s Interest

Дополнительную информацию см. в разделе Приложение: идентификаторы жанров документации корпорации Apple.For more information, please see Apple's Genre IDs Appendix documentation.

softwareSupportedDeviceIdssoftwareSupportedDeviceIds

Ключ softwareSupportedDeviceIds сообщает iTunes, какие устройства с iOS поддерживает это приложение.Use the softwareSupportedDeviceIds key to tell iTunes what iOS devices this iOS application supports. ПримерExample:

<key>softwareSupportedDeviceIds</key>
<array>
    <integer>9</integer>
</array>

Допустимы следующие значения:Where the following values are available:

  • 1 — классические iPhone1 – Classic iPhones
  • 2 — iPod Touch2 – iPod Touch
  • 4 — iPad4 – iPad
  • 9 — современные iPhone9 – Modern iPhones

Стандартные ключиStandard Keys

Следующие ключи содержатся во всех файлах iTunesMetadata.plist всех приложений iOS и всегда имеют одни и те же значения:The following keys are included in all iTunesMetadata.plist files for iOS applications and always have the same values:

<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.plistCreating an iTunesMetadata.plist File

При работе с файлом iTunesMetadata.plist в Visual Studio для Mac возможны два варианта:When working with an iTunesMetadata.plist file in Visual Studio for Mac, you have two options:

  • Создать и настроить файл а визуальном редакторе файлов plist Visual Studio для Mac.Create and maintain the file using Visual Studio for Mac's visual plist editor.
  • Создать и настроить файл в текстовом редакторе.Create and maintain the file in a plain text editor.

Ниже описываются оба способа.Both options will be covered in detail below.

Использование визуального редактора файлов plistUsing the Visual Plist Editor

Выполните следующие действия:Do the following:

  1. В Обозревателе решений щелкните правой кнопкой на файле проекта Xamarin.iOS и выберите Добавить > Новый файл...In the Solution Explorer, right-click the Xamarin.iOS project file and select Add > New File...

  2. В диалоговом окне создания файла выберите iOS > Список свойств:From the New File Dialog, select iOS > Property List:

  3. Введите в поле Имя значение iTunesMetadata и нажмите кнопку Новый.Enter iTunesMetadata for the Name and click the New button.

  4. Для редактирования файла дважды щелкните на файле iTunesMetadata.plist в Обозревателе решений:Double-click the iTunesMetadata.plist file in the Solution Explorer to open it for editing:

  5. Нажмите зеленый + для создания новой записи и введите UIRequiredDeviceCapabilities в качестве имени ключа:Click the green + to create a new entry and enter UIRequiredDeviceCapabilities as the key name:

  6. Нажмите на тип значение Строка и выберите Словарь в раскрывающемся списке:Click on the String value type and select Dictionary from the popup list:

  7. Нажмите стрелку вниз слева от имени свойства, чтобы показать элементы словаря:Click the turndown at the left of the Property's name to reveal the dictionary's entries:

  8. Нажмите на надпись Добавить запись, затем нажмите зеленый + для добавления записи в словарь:Click on the Add new entry text, then click the green + to add an entry to the dictionary:

  9. Введите armv7 в качестве имени ключа, выберите тип Логическое и введите Да в качестве значения:Enter armv7 for the key name, select a type of Boolean and enter Yes as the value:

  10. Повторяйте эти шаги, пока не заполните все необходимые пары ключ/значение в файле iTunesMetadata.plist (подробные сведения см. в разделе Содержимое файла iTunesMetadata.plist).Repeat the steps above until you have filled out the iTunesMetadata.plist file with all of the key/value pairs required (see the The iTunesMetadata.plist Contents section above for more details).

  11. Сохраните изменения в файле plist.Save the changes to the plist file.

Использование текстового редактораUsing a Plain Text Editor

Выполните следующие действия:Do the following:

  1. Создайте в текстовом редакторе новый файл и назовите его iTunesMetadata.plist.In a plain text editor, create a new text file and name it iTunesMetadata.plist.
  2. Скопируйте пример содержимого файла из раздела Содержимое файла iTunesMetadata.plist выше.Copy the example contents from the The iTunesMetadata.plist Contents section above.
  3. Вставьте содержимое в файл и отредактируйте его под свои нужды.Paste the contents in the file and edit them as required.
  4. Сохраните файл и вернитесь в Visual Studio для Mac.Save the file and return to Visual Studio for Mac.
  5. В Обозревателе решений щелкните правой кнопкой на файле проекта Xamarin.iOS и выберите Добавить > Существующие файлы....In the Solution Explorer, right-click on the Xamarin.iOS project file and select Add > Existing Files....
  6. В диалоговом окне открытия файла выберите файл iTunesMetadata.plist, который мы создали выше, и нажмите кнопку OK.In the Open File Dialog, select the iTunesMetadata.plist file that was created above and click the OK button.
  7. Оставьте значение поля Действие при построении в значении Нет.Leave the Build Action of this file set to None.

Позднее выберите файл iTunesMetadata.plist при подготовке к сборке IPA-файла в среде разработки.Later, select this iTunesMetadata.plist file when you prepare to build your IPA in the IDE.

СводкаSummary

Статья описывает файл iTunesMetadata.plist, который используется для предоставления информации iTunes о распространяемом напрямую приложении iOS.This article has covered the iTunesMetadata.plist file that can be used to tell iTunes about an ad hoc delivered iOS application. Приведено описание стандартных ключей в файле plist, а также процесс создания и настройки файла в Visual Studio и Visual Studio для Mac.It has discussed the standard key in the plist file and how to create and maintain the file in Visual Studio and Visual Studio for Mac.