没错!你没看错!俺这篇博客就是关于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 \
touqiu.ipa \
$PROJ_PATH/TouQiu-app.xml \
$PROJ_PATH/TouQiu.swf
错误是
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 \
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 \
-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 \
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)的后面,和其他附加文件之前。好吧。
./adt -package \
-target ipa-test-interpreter-simulator \
-provisioning-profile touqiu.mobileprovision \
-keystore dev.p12 \
-storetype PKCS12 \
-storepass \
touqiu.ipa \
$PROJ_PATH/TouQiu-app.xml \
-platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7..sdk \
-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
最终,终于成功运行了,以上就是正常的代码。哇卡卡。
接着,写拷贝到模拟器的命令:
./adt -installApp \
-platform ios \
-platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7..sdk \
-device ios-simulator \
-package touqiu.ipa
运行的脚本:
./adt -launchApp \
-platform ios \
-platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7..sdk \
-device ios-simulator \
-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