Xamarin.iOS アプリの iTunesMetadata.plist ファイル

この記事では、テストまたはエンタープライズ展開のためのアドホックな配布を使って iOS アプリケーションに関する情報を iTunes に提供するために使われる iTunesMetadata.plist ファイルについて説明します。

iTunes App Store での販売または無料リリースのために iOS アプリケーションを iTunes Connect で作成するとき、開発者はアプリケーションのジャンル、サブジャンル、著作権の通知、サポートされている iOS デバイス、必要なデバイス機能などの情報を指定できます。 アドホック配布によってテスト担当者またはエンタープライズ ユーザーに配信される iOS アプリケーションの場合は、この情報はありません。

不足している情報をアドホック配布に提供するには、省略可能な iTunesMetadata.plist ファイルを作成して、アプリケーションの IPA ファイルに含めることができます。 この plist ファイルは特殊な形式の XML ファイルであり (詳しくは Apple の「Property List Programming Guide」(プロパティ リスト プログラミング ガイド) をご覧ください)、特定の iOS アプリケーションに関する情報を定義するキー/値ペアが含まれます。

iTunesMetadata.plist の内容

アドホック配布用の iTunes 情報の定義に使われる一般的な iTunesMetadata.plist ファイルの例を次に示します。

<?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 デバイスにインストールする前に、iOS アプリケーションに必要なデバイス固有機能を認識できます。 機能 (<key>...</key>) の辞書 (<dict>...</dict>) と各機能のブール値として提供されます。 機能の値が true の場合、その機能は存在する必要があります。 false の場合、その機能はデバイスに存在することはできません。 次に例を示します。

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

このアプリケーションをデバイスにインストールする前に、iOS デバイスが ARM7 命令をサポートし、前面カメラを持っている必要があることを指定します。 指定できる値の完全な一覧については、Apple のドキュメントで UIRequiredDeviceCapabilities をご覧ください。

artistName、playlistArtistName

artistName および playlistArtistName キーは、iTunes に表示される iOS アプリケーション作成会社の名前を定義するために使います。 例:

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

bundleDisplayName、itemName、playlistName

bundleDisplayNameitemNameplaylistName キーは、iTunes 内に表示される iOS アプリケーションの名前を定義するために使います。 例:

<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 キーは、iTunes に表示される iOS アプリケーションのバージョン番号を定義するために使います。 例:

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

softwareVersionBundleId

softwareVersionBundleId キーは、iOS アプリケーションのバンドル ID を指定するために使います。 例:

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

copyright キーは、iTunes に表示される著作権の告知を定義するために使います。 例:

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

releaseDate

releaseDate キーは、iTunes に表示される iOS アプリケーションのリリース日を指定するために使います。 例:

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

softwareIconNeedsShine

softwareIconNeedsShine キーは、iOS 6 (およびそれより前) の場合に iOS アプリケーションのアイコンを "明るく強調する" 必要があるかどうかを iTunes に伝えるために使います。 例:

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

gameCenterEnabled、gameCenterEverEnabled

gameCenterEnabled および gameCenterEverEnabled キーは、この iOS アプリケーションが Apple の Game Center をサポートしているかどうかを iTunes に伝えるために使います。 例:

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

genre、genreId、subgenres

genre および genreId キーは、iOS アプリケーションのジャンルを iTunes に伝えるために使います。 例:

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

必要に応じて、subgenres キーを使って iOS アプリケーションのサブジャンルを最大 2 個まで追加定義できます。 例:

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

iOS アプリケーションの場合、現在定義されているジャンルとジャンル ID は次のとおりです。

Genre ID ジャンル名
6000 事業
6001 Weather
6002 ユーティリティ
6003 移動
6004 スポーツ
6005 ソーシャル ネットワーキング
6006 リファレンス
6007 生産性
6008 写真/ビデオ
6009 ニュース
6010 ナビゲーション
6011 ミュージック
6012 ライフスタイル
6013 ヘルスケア/フィットネス
6014 ゲーム
6015 ファイナンス
6016 エンターテイメント
6017 教育
6018 書籍
6020 医療
6021 雑誌・新聞
6022 カタログ

ゲーム (6014) のサブジャンル:

Genre ID ジャンル名
7001 アクション
7002 Adventure
7003 アーケード
7004 Board
7005 Card
7006 カジノ
7007 さいころ
7008 教育
7009 家族
7010 子供向け
7011 ミュージック
7012 Puzzle
7013 レーシング
7014 RPG
7015 シミュレーション
7016 スポーツ
7017 戦略
7018 Trivia
7019 Word

雑誌・新聞 (6021) のサブジャンル:

Genre ID ジャンル名
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 キーは、この iOS アプリケーションがサポートしている iOS デバイスを iTunes に伝えるために使います。 例:

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

有効な値は次のとおりです。

  • 1 – クラシック iPhone
  • 2 – iPod Touch
  • 4 – iPad
  • 9 – 最新の iPhone

標準キー

以下のキーは、iOS アプリケーションのすべての iTunesMetadata.plist ファイルに含まれ、常に同じ値に設定されます。

<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 ファイルの作成

Visual Studio for Mac で iTunesMetadata.plist ファイルを操作する場合には、次の 2 つのオプションがあります。

  • Visual Studio for Mac のビジュアル plist エディターを使ってファイルを作成および保守します。
  • プレーン テキスト エディターでファイルを作成および保守します。

以下では両方のオプションについて詳しく説明します。

ビジュアル plist エディターを使う

次の操作を行います。

  1. ソリューション エクスプローラーで Xamarin.iOS プロジェクト ファイルを右クリックし、[追加]>[新しいファイル...] の順に選びます。

  2. [新しいファイル] ダイアログで、[iOS]>[プロパティ一覧] の順に選びます。

    Select iOS Property List

  3. [名前] に「iTunesMetadata」と入力し、[新規] ボタンをクリックします。

  4. ソリューション エクスプローラーiTunesMetadata.plist ファイルをダブルクリックして、編集用に開きます。

    The iTunesMetadata.plist editor

  5. 緑色の +[] をクリックして新しいエントリを作成し、キー名として「UIRequiredDeviceCapabilities」と入力します。

    Create a new entry and enter UIRequiredDeviceCapabilities as the key name

  6. 値の種類として [文字列] をクリックし、ポップアップ リストから [辞書] を選びます。

    Select Dictionary from the popup list

  7. プロパティの名前の左側にある折り返しをクリックして、辞書のエントリを表示します。

    Reveal the dictionary entries

  8. [新しいエントリの追加] をクリックし、緑色の +[] をクリックして辞書にエントリを追加します。

    Add an entry to the dictionary

  9. キーの名前に「armv7」と入力し、種類として [ブール値] を選び、値として「Yes」を入力します。

    Enter armv7 for the key name, select a type of Boolean and enter Yes as the value

  10. 上記の手順を繰り返して、必要なすべてのキー/値ペアを iTunesMetadata.plist ファイルに設定します (詳しくは、前の「iTunesMetadata.plist の内容」をご覧ください)。

  11. 変更内容を plist ファイルに保存します。

プレーン テキスト エディターを使う

次の操作を行います。

  1. プレーン テキスト エディターで新しいテキスト ファイルを作成し、iTunesMetadata.plist という名前にします。
  2. 前の「iTunesMetadata.plist の内容」セクションから内容の例をコピーします。
  3. ファイルに内容を貼り付け、必要に応じて編集します。
  4. ファイルを保存し、Visual Studio for Mac に戻ります。
  5. ソリューション エクスプローラーで Xamarin.iOS プロジェクト ファイルを右クリックし、[追加]>[既存のファイル...] の順に選びます。
  6. [ファイルを開く] ダイアログで、上で作成した iTunesMetadata.plist ファイルを選び、[OK] ボタンをクリックします。
  7. このファイルの [ビルド アクション][なし] のままにします。

その後、IDE で IPA のビルドを準備するときに、この iTunesMetadata.plist ファイルを選びます。

まとめ

この記事では、アドホックに配信される iOS アプリケーションについて iTunes に伝えるために使うことができる iTunesMetadata.plist ファイルについて説明しました。 plist ファイルの標準キーについて説明し、Visual Studio と Visual Studio for Mac. でファイルを作成して保守する方法について説明しました。