商店应用的WACK问题 -- Cocos2dx 游戏移植到 Windows Phone8 之通用应用篇

 

Universal Windows App即通用窗口应用是微软2014年推出的最重要的技术之一。在全新8.1的Windows XAML app framework下,使用统一的 Windows 运行时和 Visual Studio IDE 同时针对所有 Windows 设备进行开发(包括Windows Phone),真正做到一套代码全平台共用,极大地提高了开发效率,节省开发成本。

针对最近有开发者反馈在Cocos2dx最新的Universal工程中存在Windows Store应用无法提交商店审核的问题,文本在此做一个统一的说明。

 

目前能够开发Windows Store应用的Cocos2dx的工程通常有二种类型:proj.winrt、proj.win8.1-universal。前者是比较旧的非通用应用的工程,存在于2.x版本中。后者就是通用应用工程,存在于3.x版本。无论哪种类型,工程的CPU平台一般都有三种:ARM、Win32和x64。如果打开Visual Studio,可以从工具栏中发现CPU的选项:

针对不同的设备,开发者需要在各自对应的CPU中进行切换。目前存在的问题和CPU平台有关,主要有二类:

1.  Cocos2dx所有版本在x64平台上全部编译出错

x64平台上3.x版本handleTouch类的函数有参数类型转换的错误,还有link方面的错误:

 

 

X64平台的2.x版本有link方面的错误:

2.  Cocos2dx 3.3-3.5版本在Win32平台上商店审核出错

(注:所有错误都只针对Windows Store的应用,Windows Phone的应用不存在错误) 

 

下面是解决方法:

1.  Windows Store 应用的64位CPU平台(即x64)的版本还在开发中,所以目前确实无法编译通过。可以使用32位CPU平台(即Win32)代替,用于Surface Pro 、笔记本这样的设备。

 

2.  在提交Win32平台的商店应用审核时,请先用WACK(Windows App Certification Kit)测试,选项画面见下图:

在3.3-3.5版本中如何出现类似”APIs are not the part of the Windows SDK for Windows Store apps”的审核不通过的意见,那请在控制面板里删除KB2976978 的Windows Update。

详情可以参考如下博客:

https://msopentech.com/blog/2014/12/16/windows-app-certification-kit-fails-with-cocos2d-x-3-windows-8-universal-project/

 

3.  ARM平台上没有任何问题,用于Surface RT这样的设备。

 

谢谢!

梅颖广