Flash AIR14导出ipa到Mac上的iOS模拟器测试
没错!你没看错!俺这篇博客就是关于Flash AIR的!
----------------无聊的分割线------------------
朋友最近学习Flash AIR for iOS开发,想找我帮忙,让我测测屏幕适配的情况,可是悲剧的是我只有一个iPhone4,没有最新的iPhone5(很屌丝=。=),除了找个真机测试之外,剩下的办法只有试试把ipa导入到Mac的iOS模拟器上测试。我们知道Mac的iOS模拟器上跑的App实际上都是Intel的,而不是真实设备上的Arm,所以想让Flash AIR导出的ipa在iOS模拟器上运行,唯一的办法只有想办法让Flash导出模拟器可以用的ipa。
于是百度之(最近谷歌被各种屏蔽,身在天朝真悲剧:(),找到天地会上这个,虽然已经是老的版本,但是已经提供了基本思路,即用ADT自己打包AIR的ipa。
剩下的是,上手之!目录配好,脚本写好,走你!
报错了。。。
./adt -package \ -target ipa-test-interpreter-simulator \ -provisioning-profile touqiu.mobileprovision \ -keystore dev.p12 \ -storetype PKCS12 \ -storepass 123456 \ touqiu.ipa \ $PROJ_PATH/TouQiu-app.xml \ $PROJ_PATH/TouQiu.swf
错误是
302 Root content file “TouQiu.swf” missing from package
晕!赶紧查文档,发现原来xml配置文件后的其他文件如果不在当前目录,需要如下写:“-C 目录 文件名(或文件夹名)”
于是改之,运行之
./adt -package \ -target ipa-test-interpreter-simulator \ -provisioning-profile touqiu.mobileprovision \ -keystore dev.p12 \ -storetype PKCS12 \ -storepass 123456 \ touqiu.ipa \ $PROJ_PATH/TouQiu-app.xml \ -C $PROJ_PATH TouQiu.swf \ -C $PROJ_PATH icons \ -C $PROJ_PATH Default.png \ -C $PROJ_PATH Default@2x.png \ -C $PROJ_PATH Default-568h@2x.png
可是还是报错,说没有-platformsdk,继续查文档,文档说到“Additionally, when using ADT with the iOS Simulator, you must always include the -platformsdk option, specifying the path to the iOS Simulator SDK.”,好吧,那就加上。如下又是修改后的代码,结果,还是报错。
./adt -package \ -target ipa-test-interpreter-simulator \ -provisioning-profile touqiu.mobileprovision \ -keystore dev.p12 \ -storetype PKCS12 \ -storepass 123456 \ -platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk \ touqiu.ipa \ $PROJ_PATH/TouQiu-app.xml \ -C $PROJ_PATH TouQiu.swf \ -C $PROJ_PATH icons \ -C $PROJ_PATH Default.png \ -C $PROJ_PATH Default@2x.png \ -C $PROJ_PATH Default-568h@2x.png
说“touqiu.ipa not found!”。我去,这是啥问题。想了想,加入-platformsdk这个参数后才报错的,那肯定和这个参数有关?难道说这个参数影响了它后面的参数touqiu.ipa?那我把这个参数换个位置,如下:
./adt -package \ -target ipa-test-interpreter-simulator \ -provisioning-profile touqiu.mobileprovision \ -keystore dev.p12 \ -storetype PKCS12 \ -storepass 123456 \ touqiu.ipa \ -platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk \ $PROJ_PATH/TouQiu-app.xml \ -C $PROJ_PATH TouQiu.swf \ -C $PROJ_PATH icons \ -C $PROJ_PATH Default.png \ -C $PROJ_PATH Default@2x.png \ -C $PROJ_PATH Default-568h@2x.png
还是不行。。。继续查文档,好吧,原来这些参数的位置是有规则的:
Create a native package that includes a native extension from the component application files:
adt -package AIR_SIGNING_OPTIONS -migrate MIGRATION_SIGNING_OPTIONS -target packageType DEBUGGER_CONNECTION_OPTIONS -airDownloadURL URL NATIVE_SIGNING_OPTIONS output app_descriptor -platformsdk path FILE_OPTIONS
这个-platformsdk参数必须在output(也就是我们的touqiu.ipa)和app_descriptor(我们的touqiu-app.xml)的后面,和其他附加文件之前。好吧。
1 ./adt -package \ 2 -target ipa-test-interpreter-simulator \ 3 -provisioning-profile touqiu.mobileprovision \ 4 -keystore dev.p12 \ 5 -storetype PKCS12 \ 6 -storepass 123456 \ 7 touqiu.ipa \ 8 $PROJ_PATH/TouQiu-app.xml \ 9 -platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk \ 10 -C $PROJ_PATH TouQiu.swf \ 11 -C $PROJ_PATH icons \ 12 -C $PROJ_PATH Default.png \ 13 -C $PROJ_PATH Default@2x.png \ 14 -C $PROJ_PATH Default-568h@2x.png
最终,终于成功运行了,以上就是正常的代码。哇卡卡。
接着,写拷贝到模拟器的命令:
1 ./adt -installApp \ 2 -platform ios \ 3 -platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk \ 4 -device ios-simulator \ 5 -package touqiu.ipa
运行的脚本:
1 ./adt -launchApp \ 2 -platform ios \ 3 -platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk \ 4 -device ios-simulator \ 5 -appid com.xxx.touqiu
大功告成!
还有一个小细节,用7.0的sdk做出来的ipa,模拟器7.0设备以下是看不到的,反正用脚本运行这个app,就没有问题。
OK,就到这里了。flash ADT文档的地址:http://help.adobe.com/en_US/air/build/WS901d38e593cd1bac1e63e3d128fc240122-8000.html