Xamarin.iOS 應用程式中的 iTunesMetadata.plist 檔案
本文所涵蓋的 iTunesMetadata.plist 檔案,可為 iTunes 提供針對測試或企業部署使用臨機操作散發之 iOS 應用程式的相關資訊。
在 iTunes Connect 中建立 iOS 應用程式時 (無論是要在 iTunes App Store 銷售或免費發行),開發人員可指定像是應用程式的內容類型、子內容類型、著作權聲明、支援的 iOS 裝置以及所需裝置功能等資訊。 針對透過臨機操作散發提供給測試人員或企業使用者的 iOS 應用程式,則會缺少這項資訊。
若要將缺少的資訊提供給臨機操作散發,可以建立選擇性的 iTunesMetadata.plist
檔案,並將其包含在應用程式 IPA 檔案中。 此 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 應用程式所需的裝置專屬功能,以順利將該應用程式安裝於特定的 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
使用 bundleDisplayName
、itemName
與 playlistName
索引鍵來定義將會顯示在 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 應用程式的套件組合識別碼。 範例:
<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
索引鍵來告訴 iTunes 該 iOS 應用程式的圖示是否需要針對 iOS 6 (和更舊版本) 以發亮醒目提示的方式呈現。 範例:
<key>softwareIconNeedsShine</key>
<false/>
gameCenterEnabled 和 gameCenterEverEnabled
使用 gameCenterEnabled
和 gameCenterEverEnabled
索引鍵來告訴 iTunes 此 iOS 應用程式支援 Apple 的 Game Center。 範例:
<key>gameCenterEnabled</key>
<false/>
<key>gameCenterEverEnabled</key>
<false/>
genre、genreId 與 subgenres
使用 genre
和 genreId
索引鍵來告訴 iTunes 該 iOS 應用程式所屬的內容類型。 範例:
<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>
針對 iOS 應用程式,Apple 目前會定義下列內容類型和內容類型識別碼:
Genre ID (內容類型識別碼) | Genre Name (內容類型名稱) |
---|---|
6000 | 業務 |
6001 | 天氣 |
6002 | 公用程式 |
6003 | 旅遊 |
6004 | 運動 |
6005 | 社交網路 |
6006 | 參考 |
6007 | 生產力 |
6008 | 相片與影片 |
6009 | 新聞 |
6010 | 導覽 |
6011 | 音樂 |
6012 | 生活方式 |
6013 | 健康與健身 |
6014 | 遊戲 |
6015 | Finance |
6016 | 娛樂 |
6017 | 教育程度 |
6018 | 書籍 |
6020 | 醫療 |
6021 | Newsstand |
6022 | 目錄 |
遊戲 (6014) 子內容類型:
Genre ID (內容類型識別碼) | Genre Name (內容類型名稱) |
---|---|
7001 | 動作 |
7002 | Adventure |
7003 | 大型電玩 |
7004 | 委員會 |
7005 | 卡片 |
7006 | 博奕 |
7007 | 骰子 |
7008 | 教育 |
7009 | 系列 |
7010 | 兒童 |
7011 | 音樂 |
7012 | Puzzle |
7013 | 競速 |
7014 | 角色扮演 |
7015 | 模擬 |
7016 | 運動 |
7017 | 策略 |
7018 | 邏輯 |
7019 | Word |
Newstand (6021) 子內容類型:
Genre ID (內容類型識別碼) | Genre Name (內容類型名稱) |
---|---|
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 應用程式所支援的 iOS 裝置。 範例:
<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
檔案時,您有兩個選項:
- 使用 Visual Studio for Mac 的視覺化 plist 編輯器來建立和維護檔案。
- 在純文字編輯器中建立和維護檔案。
這兩個選項都將在下方詳細說明。
使用 Visual Plist 編輯器
執行下列操作:
在 [方案總管] 中,以滑鼠右鍵按一下 Xamarin.iOS 專案檔,然後選取 [新增]>[新增檔案]
從 [新增檔案] 對話方塊中,選取 [iOS]>[屬性清單]:
輸入
iTunesMetadata
作為 [名稱],然後按一下 [新增] 按鈕。在 [方案總管] 中,按兩下
iTunesMetadata.plist
檔案來開啟它以進行編輯:按一下綠色的 + 來建立新的項目,並輸入
UIRequiredDeviceCapabilities
作為索引鍵名稱:按一下 [字串] 值類型,然後從快顯清單中選取 [字典]:
按一下屬性名稱左邊的向下箭頭以顯示字典的項目:
按一下 [新增項目] 文字,然後按一下綠色的 + 來將項目新增至字典:
輸入
armv7
作為索引鍵名稱、選取一種 [布林值] 類型,然後輸入 Yes 作為值:重複上述步驟,直到您已在
iTunesMetadata.plist
檔案中填入所需的所有索引鍵/值組為止 (如需詳細資料,請參閱 iTunesMetadata.plist 內容一節)。儲存對 plist 檔案所做的變更。
使用純文字編輯器
執行下列操作:
- 在純文字編輯器中,建立新的文字檔,並將其命名為
iTunesMetadata.plist
。 - 從上方的 iTunesMetadata.plist 內容小節,複製範例內容。
- 將內容貼到檔案中,並視需要加以編輯。
- 儲存檔案,並返回 Visual Studio for Mac。
- 在 [方案總管] 中,以滑鼠右鍵按一下 Xamarin.iOS 專案檔,然後選取 [新增]>[現有的檔案]。
- 在 [開啟檔案] 對話方塊中,選取上面所建立的
iTunesMetadata.plist
檔案,然後按一下 [確定] 按鈕。 - 將此檔案的 [建置動作] 保持設定為 [無]。
之後,當您準備在 IDE 中建置 IPA 時,請選取這個 iTunesMetadata.plist
檔案。
摘要
本文已涵蓋 iTunesMetadata.plist
檔案,此檔案可用來告訴 iTunes 有關以臨機操作傳遞之 iOS 應用程式的相關資訊。 本文也討論 plist 檔案中的標準索引鍵,以及如何在 Visual Studio 和 Visual Studio for Mac 中建立和維護該檔案。