Flash AIR 编写的应用,能够在多平台发布, 前景还是很不错的。 这几天研究了一下发布成苹果版,有几个坑记录一下,方便以后其他人。
一. 在苹果上尽然不全屏
我的游戏需要全屏显示,在Android上跑起来都很正常,在iphone6上死活不能全屏,网上查了下发现需要添加一张1334x750的名为Default-568h@2x.png的图像到src目录下, 这张图可以什么都不画,因为程序里根本不显示他, 他只是苹果在打包过程中用来确定画面大小的参考文件。
二. 作用域问题
AIR应用在ios上调试时,有两种模式, 一种是:AOT模式(ahead of time), 一种是:解释器模式。 解释器模式编译会比较快,执行效率稍慢; AOT模式,编译时间会更久一点,运行速度稍快。 导出发布版时,只能为AOT模式。 但AOT模式有个限制,就是用loader加载swf文件,必须在Application同一域下。 我们平时写代码时,一般都是默认参数,及加载到子域, 所以flash程序里 所有加载swf的地方,都需要手动修改下。
三. swf不允许重复加载
AIR for ios不允许重复加载统一个swf,会报Error #2044: Unhandled IOErrorEvent:. text=Error #3764: Reloading a SWF is not supported on this operating system. 所以设计的时候需要规避这个问题
四. 发布问题
在自己机子上测试通过了,以为万事大吉了, 结果往苹果app Store上发布时,还有一大堆问题。 在用Application Loader 上传应用时,applicationLoader 会对应用进行解析,然后又提示一大堆问题。由于忘了截图,只能用文字简要说明下:
1. 证书配置文件问题
我在flash Builder上发布的版本已经是采用的发布证书,和发布配置文件,但是上传时依然提示证书文件依然有问题,不知何故。 反正到苹果开发者的Certificates, Identifiers & Profiles里,再申请一次后,重新打包后,就没有这个问题了。
2. 图标问题
applicationLoader解析时,提示图标配置不正确,其他几个都是警告,有一个是Error, 所以不能忽视。把符合苹果要求的图标统统弄进去,包括:57x57,76x76, 120x120,152x152,512x512.
3. get-task-allow设置
还有一个错误提示是 get-task-allow不能设置成true. 但是我的应用是用flashBuilder开发的,不知道get-task-allow是在哪个位置设置,幸好我聪明,经过探索研究,发现在工程的配置文件 xxxx-app.xml里,可以通过在标签里添加个字段解决!