Xamarin.iOS 应用中的 iTunesMetadata.plist 文件
本文介绍了 iTunesMetadata.plist 文件,该文件用于向 iTunes 提供 iOS 应用程序使用 Ad Hoc 分发进行测试或企业部署的相关信息。
在 iTunes Connect 中创建 iOS 应用程序(无论是用于在 iTunes App Store 中销售还是免费发布)时,开发人员可指定应用程序类型、子类型、版权声明、支持的 iOS 设备和必需设备功能等信息。 对于通过 Ad Hoc 分发传递给测试员或企业用户的 iOS 应用程序,缺少此信息。
若要向 Ad Hoc 分发提供缺少的信息,可选择创建可选的 iTunesMetadata.plist
文件,然后将其包含在应用程序 IPA 文件中。 此 plist 文件是特殊格式的 XML 文件(详情请参阅属性列表编程指南),其中包含定义给定 iOS 应用程序相关信息的键/值对。
iTunesMetadata.plist 内容
以下示例介绍了典型的 iTunesMetadata.plist
文件,该文件用于定义 Ad Hoc 分发所需的 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 应用程序的程序包 ID。 示例:
<key>softwareVersionBundleId</key>
<string>com.company.appid</string>
copyright
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 应用程序图标是否需要对 iOS 6(及先前版本)使用高亮突出显示通知 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 应用程序的子类型(最多两个)。 示例:
<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 当前定义以下的类型和类型 ID:
类型 ID | 类型名称 |
---|---|
6000 | 企业 |
6001 | 天气 |
6002 | 实用程序 |
6003 | 旅行 |
6004 | 体育游戏 |
6005 | 社交 |
6006 | 参考 |
6007 | 工作效率 |
6008 | 摄像与录影 |
6009 | 新闻 |
6010 | 导航 |
6011 | 音乐 |
6012 | 生活 |
6013 | 健康健美 |
6014 | 游戏 |
6015 | Finance |
6016 | 娱乐 |
6017 | 教育 |
6018 | 书籍 |
6020 | 医疗 |
6021 | 报刊杂志 |
6022 | 目录 |
游戏 (6014) 子类型:
类型 ID | 类型名称 |
---|---|
7001 | 操作 |
7002 | Adventure |
7003 | 街机游戏 |
7004 | Board |
7005 | 卡 |
7006 | 娱乐场游戏 |
7007 | 骰子游戏 |
7008 | 教育类游戏 |
7009 | 系列 |
7010 | 儿童游戏 |
7011 | 音乐 |
7012 | 拼图 |
7013 | 赛车游戏 |
7014 | 角色扮演游戏 |
7015 | 模拟 |
7016 | 体育游戏 |
7017 | 策略 |
7018 | Trivia |
7019 | Word |
Newstand (6021) 子类型:
类型 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
文件时,有两种选择:
- 使用 Visual Studio for Mac 的可视化 plist 编辑器创建和维护文件。
- 在纯文本编辑器中创建和维护文件。
下面将详细介绍这两种选择。
使用可视化 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
文件,该文件可用于就 Ad Hoc 分发的 iOS 应用程序通知 iTunes。 它还介绍了 plist 文件中的标准键,以及如何在 Visual Studio 和 Visual Studio for Mac 中创建和维护该文件。