Windows Phone的应用程序认证要求
本文介绍了 Windows Phone 应用程序或游戏要通过认证并在 Windows Phone Marketplace 中发布而必须满足的策略和技术要求。
设计认证过程的一个核心原则是:每个策略或要求都是清晰、客观且可测试的。此透明原则旨在帮助开发人员轻松地设计和测试满足这些要求的应用程序。
下面列出了认证计划的主要内容:
- 应用程序很可靠。
- 应用程序有效地利用了资源。
- 应用程序不妨碍手机的其他功能。
- 应用程序不是恶意软件。
1.1 需要了解的提交和认证过程内容
在准备将应用程序发布到 Windows Phone Marketplace 之前,必须先执行认证过程。在应用程序提交之前不需要签名。
认证过程包括静态验证和自动测试应用程序,以验证其是否满足所有策略和要求。下面列出了 5 种主要的策略和要求类别:
- 应用程序策略
- 内容策略
- 应用程序提交要求
- 技术认证要求
- 对特定应用程序类型的其他要求
下面是一个简单的提交和认证过程图示。
重要提示: |
当提交应用程序更新进行认证时,其认证过程与原始应用程序的认证过程相同。 |
1.1.1 过程概述
下面简单地概述了提交和认证过程:
- 使用您的帐户登录到 App Hub。
- 创建新的应用程序提交。
- 上传应用程序 XAP 文件。
- 输入应用程序的元数据,比如标题、描述、类别和图解。
- 选择发行国家/地区和价格。
- 在输入这些元数据时会验证 XAP 文件。
- 如果 XAP 文件验证成功,提交过程将继续进行步骤 8;否则过程终止并通知您。通过认证过程之后,可以选择立即发布选项,也可以稍后再发布。
- 文件重新打包 XAP,如 4.1.2 节所述。
- 重新打包的 XAP 文件会部署到手机以进行认证测试。认证测试包括自动和手动验证应用程序是否满足 2、3、4、5 和 6 节中所描述的要求。
- 如果应用程序满足所有要求,则重新打包的 XAP 文件和程序集文件将获得签名,并且会根据步骤 7 的选项发布应用程序。
- 如果应用程序不满足其中一个或多个要求,您将得到一个故障报告,并且无法发布应用程序。
1.1.2 代码签名
当应用程序准确无误地成功通过认证测试后,会自动进行代码签名。还会使用 Authenticode® 证书对应用程序和重新打包的 XAP 文件进行签名,这个证书是在注册为 App Hub 成员时分配给您的。证书签发后,不会保留之前签发给应用程序和 XAP 文件的任何签名。
重要提示: |
在将所有应用程序安装到投放市场的 Windows Phone 设备并在其上运行之前,都必须使用 Microsoft 签发的 Authenticode 证书对他们进行签名。 |
为了保护 Windows Phone Marketplace 的服务及其用户,并满足移动运营商的需求,Microsoft 对于在 Windows Phone Marketplace 中分发的应用程序制定了以下策略。Microsoft 保留在必要时更新本策略的权利。
要求 |
要求内容 |
2.1 |
从 Windows Phone Marketplace 中获取的应用程序必须提供完备的功能(下文允许的外部数据存取除外)。除非您与用户已存在计费支付关系,否则您不得要求用户在使用过程中、在 Windows Phone Marketplace 之外支付费用以激活、解锁或延长该应用程序的使用。 |
2.2 |
您的应用程序不得用于销售、绑定或以其他方式推广移动语音服务套餐。 |
2.3 |
您的应用程序不得危害 (a) Windows Phone 设备或 (b) Windows Phone Marketplace 的安全或功能。 |
2.4 |
如果您的应用程序包含或显示广告,则该广告必须符合 Microsoft 广告创意承诺原则指南 (Microsoft Advertising Creative Acceptance Policy Guide),并且该应用程序必须具有独特的、实质的及合法的内容和目的,而不仅仅是广告的展示。 |
2.5 |
如果您的应用程序需要另外下载一个大的数据包(例如,大于 50 MB),以使该应用程序的运行与描述一致,则该应用程序的描述必须说明该数据包的估计大小,并且说明用于获取数据的网络连接可能引起额外费用。 |
2.6 |
如果您的应用程序支持聊天、即时消息传递或其他形式的个人到个人的沟通,并允许用户使用移动设备设置或创建其帐户或 ID,则该应用程序必须包含验证机制,以确认创建帐户或 ID 的用户年龄在 13 岁或以上。 |
2.7 |
以下要求适用于使用 Microsoft Location Service API 接收用户移动设备的位置的应用程序: |
2.7.1 |
您的应用程序必须使用 Microsoft Location Service API 确定位置。 |
2.7.2 |
您的应用程序的隐私策略必须通知用户的信息包括,如何使用和公开从 Location Service API 获取的位置数据,以及用户对位置数据的使用及共享所具有的控制。 |
2.7.3 |
您的应用程序必须在应用程序中提供设置,使用户可以启用或禁止应用程序通过 Location Service API 访问和使用位置。 |
2.7.4 |
如果您的应用程序向其他服务或其他个人(包括广告网络)发布或提供从 Location Service API 获取的位置数据,则您的应用程序必须实施一个获得选择加入许可的方法。为了实现一个征得用户许可的方法,该应用程序必须 (a) 首先描述如何使用或共享位置信息;(b) 在按所描述的方式发布位置信息之前获取用户的明确许可;并且 |
2.7.5 |
您的应用程序不得替代、避开或隐藏任何与 Location Service API 相关的 Microsoft 用户通知或提示。 |
2.7.6 |
您的应用程序不得替代或避开用户在移动设备上禁用位置服务的选项。 |
2.7.7 |
您的应用程序必须仅在必要时才向 Location Service API 请求位置信息并保留和使用这些位置数据,以提供应用程序承诺提供给用户的位置感知功能。 |
2.7.8 |
您和您的应用程序必须采取措施,以防止未经授权地访问、使用或公开从 Location Service API 接收的位置数据。 |
2.8 |
如果您的应用程序从移动设备向任何服务或其他个人发布用户的个人信息,则该应用程序必须实现一个征得用户许可的方法。个人信息是指与某位可识别的用户相关的所有信息或数据,包括但不限于以下内容,且与其保存位置(移动设备或可从移动设备访问的基于 web 的服务器)无关:
为了实现一个征得用户容许的方法,该应用程序必须 (a) 提供隐私策略,该策略至少必须描述如何使用或共享个人信息;(b) 在按所描述的方式发布信息之前获取用户的明确许可;并且 (c) 提供一个机制,使用户可通过该机制随后选择退出信息的发布。 |
2.9 |
如果您的应用程序使用 Microsoft 推送通知服务 (Microsoft Push Notification Service),则该应用程序及 Microsoft推送通知服务的使用必须符合以下要求: |
2.9.1 |
该应用程序必须首先描述所提供的通知并获取用户的明确许可(选择加入),而且必须提供一个机制,用户可以通过该机制在以后选择退出接收推送通知。使用 Microsoft 推送通知服务提供的所有通知必须与提供给用户的描述一致,并且必须符合所有适用的应用程序策略和内容策略。 |
2.9.2 |
该应用程序及其 Microsoft 推送通知服务的使用不得过度占用网络容量或 Microsoft 推送通知服务的带宽,或由于过多的推送通知对 Windows Phone、其他 Microsoft 设备或服务造成负担,Microsoft 将基于其合理的考虑进行判断;并且该应用程序不得危害或干扰任何 |
2.9.3 |
Microsoft 推送通知服务不得被用于发送关键任务或其他生命攸关的事件通知,包括但不限于与医疗设备或状态相关的关键通知。MICROSOFT 明确声明不能保证 MICROSOFT 推送通知服务的使用或 MICROSOFT 推送通知服务通知的交付不中断、无错误,或以其他方式承诺上述服务的实时性。 |
2.10 |
您的应用程序必须具有独特的、实质的及合法的内容和目的,而不是仅仅启动一个网页。 |
3 内容策略
为了保护 Windows Phone Marketplace 的服务及其用户,并满足移动运营商的要求,Microsoft对于在 Windows Phone Marketplace 中发布的内容和元数据制定了以下策略。Microsoft 保留在必要时更新本策略的权利。
Windows Phone 游戏
如果您的应用程序通过了具备资质的游戏评级委员会(当前包括 CERO、CRB、DJCTZ、ESRB、FPB、GRB、OFLC-新西兰、PEGI 和 USK)的评级,则需要提交该应用程序的有效等级证书及其适当的内容描述。提交给巴西,韩国和南非的游戏需要包含游戏等级。
如果提交游戏的限制性评级等于或小于 CERO的“B” 、CRB的“PG” 、DJCTO的“12” 、ESRB 的“T”、FPB的“13” 、GRB的“12” 、OFLC-新西兰的“PG” 、PEGI 的“12”或者 USK 的“12”,则该游戏被认为符合本内容策略。游戏评级为CERO的“Z” 、CRB的“MA 15+” 、DJCTO的“18” 、ESRB 的“M”、FPB的“18” 、GRB的“15” 、OFLC-新西兰的“R18”
、PEGI 的“18”或者 USK 的“18”,也可以接受,但由于受到Windows Phone的“分级控制”而不能下载。
3.1 授权内容、名称、徽标和商标
允许的内容如下:
- 内容和应用程序名称是独创的或得到许可的。
- 允许使用受版权保护的内容。商标项(徽标/商标)的使用经过了商标所有者的批准。
- 如果应用程序描述了任一移动或有线电话、手持 PDA 或者任何其他数据和语音通信设备,则该应用程序肯定是通用的或者是 Windows Phone 设备。
- 应用程序供应商有责任确定是否有权使用所选的名称、内容、徽标、版权、商标、在线服务和 API。
3.2 非法的或设想的危害
不允许的内容如下:
- 任何违反当地适用法律的淫秽或庸俗的内容。
- 任何描述或鼓励在现实世界中对人或动物进行伤害或实施暴力的内容。
3.3 诽谤、中伤、诋毁、威胁
不允许的内容如下:
- 任何诽谤、中伤、诋毁或威胁内容。
- 任何促进或宣传上述指导原则所禁止内容的内容。
3.4 仇恨言论或歧视性
不允许的内容如下:
- 任何主张歧视、仇恨或者基于种族、民族、国籍、语言、性别、年龄、生理缺陷、社会地位、宗教、性取向的暴力或表述,或者促进致力于上述目标的组织的内容。这些内容可能包括记录一个种族、性别、性取向或宗教信仰负面成见的图片或文本。我们更倾向于抵制有证据表明有意发帖骚扰、威胁或侮辱个人或团体的内容。
3.5 酒精、烟草、武器和毒品
不允许的内容如下:
- 无论目标市场是哪里,任何促进或宣传(直接或间接)非法的(在适用的当地法律允许的范围内)或者过度出售或使用任何地区/场所不允许的酒精或烟草产品、毒品或武器的内容。
不允许的内容如下:
- 性/裸体 ——性暗示或性刺激(比如,挑逗性的性接触、性虐待、自慰)图片;显示乳头、生殖器、臀部或阴毛的挑逗性图片。
- 正常人认为是成人或成人边缘的内容(图片、文本或音频)。
- 通常属于色情类的内容。
- 描绘或暗示卖淫嫖娼的内容。
- 描写儿童或动物性关系的内容。
- 描写特殊性癖好的内容。
3.7 特定类型的非法活动
不允许的内容如下:
- 任何促进或宣传非法赌博、非法成人内容和/或色情文学、儿童色情作品、人兽性交、剽窃、网上非法药店、违规药品或犯罪或恐怖活动的内容。
- 任何指导用户如何制作炸弹或武器、毒品,或者招揽用户参与当地适用法律所谓的暴力或非法行为的内容。
- 擅自使用另一个实体的知识产权,包括但不限于:软件、音乐、艺术品以及其他受版权、商标或专利保护的材料或商业机密。
- 任何促进或宣传未成年饮酒、非法使用毒品或者由于酒精或毒品使用导致社会危害行为(比如醉酒驾驶)的内容。
- 根据应用程序供应商认可的其他合同条款,允许支持在合法赌博的管辖区域内进行合法赌博的应用程序。
不允许的内容如下:
- 现实暴力或恣意暴力,包括以下描述:
- 斩首、刺穿、鲜血飞溅/鲜血喷射/血流成河或淤血
- 身体部位爆炸
- 枪支/武器瞄准用户/观众(例如,“俄罗斯轮盘赌”游戏)
- 人或动物起火燃烧
- 虐待动物
- 人或动物痛苦的声音
- 非自愿的或肢体反抗的带有暴力或非法暗示的性暴力
- 强奸以及性侵犯
- 骚扰以及儿童性虐待
- 伤害或以其他方式伤害现实世界中的人或团体的要求或指令
- 歌颂危害人类的罪行,比如集体屠杀和酷刑。
- 勒死/绞死
不允许的内容如下:
- 任何过度使用亵渎性或成人语言的内容。
4 应用程序提交要求
在提交过程中将验证以下要求。这一过程包括检查元数据及验证您上传的 XAP 文件。
程序集和数据文件必须被打包为一个 XAP 文件包。Visual Studio® 2010 Express for Windows Phone 生成必要的 XAP 程序包和清单文件。
要求 |
要求内容 |
4.1.1 – 程序包要求列表 |
XAP 程序包文件最大为 225 MB。 XAP 程序包必须包含以下内容:
有关设置应用程序和平铺标题的更多信息,请参阅 如何为 Windows Phone 的应用程序平铺图标设置初始属性。
|
4.1.2 - XAP 文件重新打包过程 |
当您向 Windows Phone Marketplace 提交 XAP 文件时,该文件将被解压缩、验证并重新打包。 重新打包包含以下步骤:
|
要求 |
要求内容 |
4.2.1 |
您必须使用在 Windows Phone Application Platform 上支持的记录的 API 开发应用程序。有关更多信息,请参阅 Windows 想要获取Windows Phone OS 7.1的新的和改进的API的信息,和Windows Phone OS两个版本的兼容性信息,可以参考“Windows |
4.2.2 |
应用程序不得通过 PInvoke 或 COM 互操作性调用本机代码。如果它进行了该调用操作,将无法完成认证过程。 |
4.2.3 |
应用程序必须使用零售配置而不是调试来进行编译。应用程序不得包含调试符号或输出。 |
4.2.4 |
应用程序不得重新发布 Windows Phone 程序集。但是,您可以重新发布全景图、透视透视表和地图程序集。 |
4.2.5 |
在使用 System.Windows.Controls 命名空间中的任何方法时,应用程序不得调用 |
当您使用 Visual Studio 2010 Express for Windows Phone 创建一个 Windows Phone 项目时,将自动生成 Windows Phone 应用程序清单文件,它包含了 Windows Phone 所支持的全部手机功能的列表。在应用程序清单文件中列出的手机功能将在应用程序购买过程中向用户显示。此外,操作系统将根据在清单文件中所列出的功能向应用程序授予安全权限。有关更多信息,请参阅 Windows
Phone 应用程序清单文件 主题。
应用程序提交过程使用 Microsoft 中间语言 (MSIL) 代码分析来检测手机功能。如 4.1.2 节的步骤 b 所述,在您的应用程序中检测到的手机功能将在 Windows Phone 应用程序清单文件中列出,并替换已有的功能。
您可以提交一个带有模糊代码的应用程序,并且检测过程仍然适用。
功能检测过程不会发现通过 .NET 反射调用的 Windows Phone API。因此,应用程序将没有正常运行所需的安全权限,并将导致认证过程失败。
Microsoft 建议测试应用程序时所使用的手机功能,应该与在应用程序提交过程中所检测到的手机功能一致。为了做到这一点,您可以运行 Windows Phone Capability Detection 工具并将该工具所检测到的手机功能写入应用程序清单文件。完成该步骤并建立应用程序之后,如果出现错误报告,则表示该应用程序可能使用了未记录的 API 或通过 .NET 反射调用 API。有关更多信息,请参阅 如何使用
Windows Phone 的功能检测工具 主题。
注意: |
在应用程序更新过程中,功能列表可能会改变。当提交一个应用程序更新来进行认证时,其认证过程与原始应用程序的过程是相同的。 |
每个应用程序的发布应针对至少一个特定地域市场及语言。您可以针对多个市场并使用多种语言提交您的应用程序。语言检测过程包括对用于描述该应用程序的元数据,以及在该应用程序中使用的 UI 文本的评估。
下面的列表显示了在 Windows Phone 中支持的语言:
- 英语
- 法语
- 意大利语
- 德语
- 西班牙语
|