移动AIR应用程序发布于调试

移动AIR应用程序发布于调试
                                —ADT的应用

AIR Developer Tool (ADT) 是用于开发 AIR 应用程序的多用途命令行工具。
今天和大家一起学习一下如何使用ADT进行AIR移动应用程序的打包发布。

一、发布

下边我们按照实例一步步学习ADT的使用流程;

首先我建立一个手机项目,并在主类里面写入如下代码:
package testAdt {
    import flash.desktop.SystemIdleMode;
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.system.Capabilities;
    import flash.text.TextField;

    public class testAdt extends Sprite
    {
        private var i:int=0;
        public function testAdt()
        {
            var tfd:TextField=new TextField();
            tfd.width=200;
            tfd.text=Capabilities.os;
            this.addChild(tfd);
            
            var button:Sprite=creatRect(100, 80, 0x00ff00);
            
            this.addChild(button);
            button.x=100;
            button.y=100;
            
            button.addEventListener(MouseEvent.CLICK, onClickHandler);
        }

        private function onClickHandler(event : MouseEvent) : void {
            i++;
            trace("flash trace_"+i);
        }
        
        private function creatRect(w:int,h:int,color:uint):Sprite
        {
            var sp:Sprite=new Sprite();
            sp.graphics.beginFill(color);
            sp.graphics.drawRect(0,0,w,h);
            sp.graphics.endFill();
            return sp;
        }
    }
}


程序很简单就加了一个文本框和一个大绿色按钮,文本框是用来显示当前设备系统版本的,按钮被点击的话会输出相应字符。Debug 运行一下如下;


好程序没有问题,接下来我们看看如何用ADT把它打包成一个ipa安装包。

1、配置环境变量
ADT 是一个 Java 程序,它包含在AIR SDK中。必须具有 Java 1.5 或更高版本才能使用该程序。SDK 包括用于调用 ADT 的脚本文件。我们为了方便使用先来配置一下环境变量;


你可以打命令行下输入adt测试一下,若输出如下,说明配置正确。


2、编译打包
在命令行下cd到我们的工程的bin目录下,目前bin目录有三个文件;


然后在命令行中输入如下指令;
adt -package -target ipa-test -storetype pkcs12 -keystore ..\..\certificate\p12.p12 -storepass 1234 -provisioning-profile ..\..\certificate\ mobileprovision.mobileprovision myAppName.ipa testAdt-app.xml testAdt.swf ./icons
其中红色部分为命令名,其后紧跟的为参数;

各个指令的说明;
-package 表示打包一样程序的操作。
-target   表示设置发布目标版本。此处设置为ipa-test版。
下边列出了可供我们选择的版本;

 ipa-ad-hoc — 用于临时分发的 iOS 包。
 ipa-app-store — 用于 Apple 应用程序库分发的 iOS 包。
 ipa-debug — 带有额外调试信息的 iOS 包。(应用程序中的 SWF 文件也必须在具有调试支持的情况下进行编译。)
 ipa-test — 在不具有优化或调试信息的情况下编译的 iOS 包。
 ipa-debug-interpreter — 在功能上等同于调试包,但编译速度更快。不过,它会解释 ActionScript 字节代码,但不会将其转换为机器代码。因此,解释程序包中的代码执行速度较慢。
 ipa-debug-interpreter-simulator — 功能与 ipa-debug-interpreter 相同,但是针对 iOS simulator 打包。仅限 Macintosh。如果使用此选项,还必须包括 -platformsdk 选项,指定 iOS Simulator SDK 的路径。
 ipa-test-interpreter — 在功能上等同于测试包,但编译速度更快。不过,它会解释 ActionScript 字节代码,但不会将其转换为机器代码。因此,解释程序包中的代码执行速度较慢。
 ipa-test-interpreter-simulator — 功能与 ipa-test-interpreter 相同,但是针对 iOS simulator 打包。仅限 Macintosh。如果使用此选项,还必须包括 -platformsdk 选项,指定 iOS Simulator SDK 的路径。
(注:FlashBuilder的默认打包方式是ipa-app-store,打包速度相对较慢)

-storetype  设置证书类型。(此处为pkcs12)
-keystore 设置数字证书。(包括路径,此处为..\certificate\p12.p12)
-storepass 设置证书密码(1234)
-provisioning-profile  设置授权文件(包括路径,此处为..\certificate\ mobileprovision.mobileprovision)

后边是我们要生产的ipa文件名(myAppName.ipa)及需要的配置文件(testAdt-app.xml)和资源(testAdt.swf ./icons)。

确认输入无误之后敲回车,经过大概30秒的等待你会在bin目录下看到输出的文件


3、安装
我们可以通过ADT的-installApp命令将ipa包安装至我们的移动设备,不过你需求确认你已经安装了ituns。将ipad由USB链接至电脑,链接成功之后打开一个命令行窗口。编辑进入bin目录,输入
adt -installApp -platform ios -package myAppName.ipa
回车,几秒钟后会发现应用已经装在了ipad上。


二、 调试
这里的调试,指的是我们用FDB进行远程调试。
我们需要改一下打包命令;
1. 从新打包adt -package -target ipa-debug - listen 16000 -storetype pkcs12 -keystore ..\..\certificate\p12.p12 -storepass 1234 -provisioning-profile ..\..\certificate\ mobileprovision.mobileprovision myAppName.ipa testAdt-app.xml testAdt.swf ./icons

 将目标版本改为ipa-debug。
 加入-listen指令,意思为设置连接pc的端口为16000(端口可自行定义,默认为7936)

2. 将程序安装入ipad(注意在用adt进行安装的时候需要先将早期版本删除,否则会安装失败)

3. 使用 idb  devices指令确认设备信息。
idb 位于yourSDK/lib/aot/bin/iOSBin/idb 中。我们可以先跳转至idb所在目录然后键入idb –devices。


4. 使用 IDB 实用工具以及前面步骤中找到的设备 ID,将桌面计算机上的端口转发到 adt  listen 参数中指定的端口


在此示例中,7936 是桌面计算机端口,16000 是连接设备侦听到的端口,1 是连接设备的设备 ID
5. 从新打开一个命令行窗口键入fdb -p 7936 敲回车,然后键入run。


6. 从ipad上打开应用,你会看到已连接的字样。


7. 输入continue开始测试。
起初我们应用程序里有一个绿色按钮,现在我们对按钮点击看会发生什么。

命令行窗口中输入了相应的日志。
今天的分享就到这里,如有错误的地方大家仅可批评指出。更多功能大家可以阅读Adobe的官方文档。

作者:王闯
email :[email protected];

猜你喜欢

转载自wangchuang1113.iteye.com/blog/1888450
今日推荐