ADT package 命令

-package 命令应从主应用程序目录运行。该命令使用以下语法:

从组件应用程序文件创建 AIR 包:

adt -package 
    AIR_SIGNING_OPTIONS 
    -target packageType 
    -sampler 
    ‑hideAneLibSymbols 
    NATIVE_SIGNING_OPTIONS 
    output 
    app_descriptor 
    FILE_OPTIONS 

从组件应用程序文件创建本机包:

adt -package 
    AIR_SIGNING_OPTIONS 
    -target packageType 
    DEBUGGER_CONNECTION_OPTIONS 
    -airDownloadURL URL 
    NATIVE_SIGNING_OPTIONS 
    output 
    app_descriptor 
    -platformsdk path 
    FILE_OPTIONS 

从组件应用程序文件创建包含本机扩展的本机包:

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 

从 AIR 或 AIRI 文件创建本机包:

adt -package 
    -target packageType 
    NATIVE_SIGNING_OPTIONS 
    output 
    input_package

从组件本机扩展文件创建本机扩展包:

adt -package 
    AIR_SIGNING_OPTIONS     
    -target ane 
    output 
    ANE_OPTIONS
注: 不必对 ANE 文件进行签名,因此 AIR_SIGNING_OPTIONS 参数在本示例中是可选的。

AIR_SIGNING_OPTIONS AIR 签名选项标识用于对 AIR 安装文件进行签名的证书。 ADT 代码签名选项 详细介绍了各个签名选项。

-migrate 此标志指定除了在 AIR_SIGNING_OPTIONS 参数中指定的证书之外,还使用迁移证书对应用程序进行签名。只有在将桌面应用程序作为本机安装程序打包并且该应用程序使用本机扩展时,此标志才有效。其他情况会发生错误。迁移证书的签名选项如 MIGRATION_SIGNING_OPTIONS 参数所指定。 ADT 代码签名选项 中详细介绍了这些签名选项。使用 -migrate 标志,您可以为使用本机扩展的桌面本机安装应用程序创建更新,并更改应用程序的代码签名证书(例如在原始证书过期时)。有关更多信息,请参阅 对 AIR 应用程序的更新版本进行签名

-package 命令的 -migrate 标志可用在 AIR 3.6 和更高版本中。

-target 要创建的包的类型受支持的包类型包括:
  • air — AIR 包。air 是默认值,当创建 AIR 或 AIRI 文件时,不需要指定 -target 标志。

  • airn — 用于扩展电视配置文件中的设备的本机应用程序包。

  • ane — AIR 本机扩展包

  • Android 包目标:

    • apk — Android 包。使用此目标生成的包只能安装在 Android 设备上,而不能安装在仿真器上。

    • apk‑captive‑runtime — 包含应用程序和 AIR 运行时绑定版本的 Android 包。使用此目标生成的包只能安装在 Android 设备上,而不能安装在仿真器上。

    • apk-debug — 带有额外调试信息的 Android 包。(应用程序中的 SWF 文件也必须在具有调试支持的情况下进行编译。)

    • apk-emulator — 用于仿真器上不带调试支持的 Android 包。(使用 apk-debug 目标可允许同时在仿真器和设备上进行调试。)

    • apk-profile — 支持应用程序性能和内存分析的 Android 包。

  • iOS 包目标:

    • 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 的路径。

  • native — 本机桌面安装程序。生成的文件的类型是要运行命令的操作系统的本机安装格式:

    • EXE — Windows

    • DMG — Mac

    • DEB — Ubuntu Linux(AIR 2.6 或更早版本)

    • RPM — Fedora 或 OpenSuse Linux(AIR 2.6 或更早版本)

    有关更多信息,请参阅 对桌面本机安装程序进行打包

-sampler (仅限 iOS、AIR 3.4 和更高版本)在 iOS 应用程序中启用基于遥测技术的 ActionScript 取样器。通过该标志,您可以使用 Adobe Scout 对应用程序进行概要分析。尽管 Scout 可以对任何 Flash 平台内容进行概要分析,但启用精细遥测技术能够为您提供对于 ActionScript 功能计时、DisplayList、Stage3D 渲染等功能的深刻理解。注意使用该标志将产生轻微的性能影响,故请勿针对生产应用程序使用该标志。

-hideAneLibSymbols (仅 iOS,AIR 3.4 以及更高版本)应用程序开发人员可以使用来自多个来源的多个本机扩展,并且,如果 ANE 共享公用符号名,则 ADT 会产生“对象文件中符号重复”的错误。在某些情况下,该错误甚至会在运行时显示为崩溃。可以通过 hideAneLibSymbols 选项来指定是否使 ANE 库符号仅对该库的源可见(是)或全局可见(否):

  • — 隐藏 ANE 符号,可以解决任何非计划中的符号冲突问题。

  • —(默认)不隐藏 ANE 符号。这是 AIR 3.4 之前版本的行为。

-embedBitcode (仅限 iOS、AIR 25 及更高版本)应用程序开发人员可以使用 embedBitcode 选项,通过指定“是”或“否”来指定是否在其 iOS 应用程序中嵌入位代码。如果未指定,此开关的默认值则为“否”。

DEBUGGER_CONNECTION_OPTIONS 该调试器连接选项可以指定调试包是否应尝试连接到其他计算机上运行的远程调试器或侦听来自远程调试器的连接。该组选项仅支持移动调试包(目标 apk-debug 和 ipa-debug)。 调试器连接选项 中对这些选项进行了说明。

-airDownloadURL 指定用于下载并在 Android 设备上安装 AIR 运行时的替代 URL。如果未指定,则在尚未安装该运行时的情况下,AIR 应用程序会将用户重定向到 Android Market 上的 AIR 运行时。

如果您的应用程序是通过替代 Market(Google 管理的 Android Market 以外的其他 Market)分发的,则您可能需要指定用于从该 Market 下载 AIR 运行时的 URL。某些替代 Market 不允许应用程序从该 Market 以外下载 AIR 运行时。此选项仅支持 Android 包。

NATIVE_SIGNING_OPTIONS 本机签名选项标识用于对本机包文件进行签名的证书。这些签名选项用于应用由本机操作系统而非 AIR 运行时所使用的签名。此外,这些选项与 AIR_SIGNING_OPTIONS 完全相同, ADT 代码签名选项 对其进行了详细介绍。

Windows 和 Android 支持本机签名。在 Windows 上,应同时指定 AIR 签名选项和本机签名选项。在 Android 上,只能指定本机签名选项。

在许多情况下,您可以使用相同的代码签名证书来应用 AIR 和本机签名。但这并不是在所有情况下都适用。例如,对于提交至 Android Market 的应用程序,Google 的策略是:所有应用程序必须使用有效期至少至 2033 年的证书来签名。这表示不应将由知名证书颁发机构颁发的证书用于对 Android 应用程序进行签名(但在应用 AIR 签名时建议使用此类证书)。(任何证书颁发机构都不会颁发有效期如此之长的代码签名证书。)

output 要创建的包文件的名称。可以指定文件扩展名。如果没有指定,则会添加适合于 -target 值和当前操作系统的扩展名。

app_descriptor 指向应用程序描述符文件的路径。指定的路径可以是相对于当前目录的路径,也可以是绝对路径。(应用程序描述符文件在 AIR 文件中重命名为 application.xml 。)

-platformsdk 指向目标设备的平台 SDK 的路径:
  • Android - AIR 2.6 以上版本的 SDK 包含 Android SDK 中实现相关 ADT 命令所需的工具。只有在使用其他版本的 Android SDK 时才需要设置此值。此外,如果已设置了 AIR_ANDROID_SDK_HOME 环境变量,则不需要在命令行上提供平台 SDK 路径。(如果在两处都进行了设置,则会使用在命令行上提供的路径。)

  • iOS - AIR SDK 附带绑定的 iOS SDK。通过 -platformsdk 选项,您可以使用外部 SDK 打包应用程序,因此不必局限于使用绑定的 iOS SDK。例如,如果您使用最新的 iOS SDK 构建了一个扩展名,则可以在打包应用程序时指定此 SDK。此外,与 iOS Simulator 一起使用 ADT 时,您必须始终将 -platformsdk 选项包括在内,指定 iOS Simulator SDK 的路径。

-arch 应用程序开发人员可以使用此参数创建用于 x86 平台的 APK,它使用以下几个值:

  • armv7 - ADT 打包用于 Android armv7 平台的 APK。

  • x86 - ADT 打包用于 Android x86 平台的 APK。

如果未指定任何值,则默认值是 armv7

FILE_OPTIONS 标识包中要包含的应用程序文件。 文件和路径选项 详细介绍了文件选项。当从 AIR 或 AIRI 文件创建本机包时,请不要指定文件选项。

input_airi 当从 AIRI 文件创建本机包时指定此项。如果目标是 air (或没有指定目标),则 AIR_SIGNING_OPTIONS 是必需的。

input_air 当从 AIR 文件创建本机包时指定此项。请不要指定 AIR_SIGNING_OPTIONS。

ANE_OPTIONS 标识用于创建本机扩展包的选项和文件。 本机扩展选项 中全面介绍了扩展包选项。

ADT -package 命令示例

打包当前目录中针对基于 SWF 的 AIR 应用程序的特定应用程序文件:

adt –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.swf components.swc

打包当前目录中针对基于 HTML 的 AIR 应用程序的特定应用程序文件:

adt –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.html AIRAliases.js image.gif

打包当前工作目录中的所有文件和子目录:

adt –package -storetype pkcs12 -keystore ../cert.p12 myApp.air myApp.xml .
注: keystore 文件包含用于对应用程序签名的私钥。切勿在 AIR 包中包含签名证书!如果在 ADT 命令中使用通配符,请将 keystore 文件放置到其他不同位置,使其不包含在包中。在本例中,keystore 文件 cert.p12 驻留在父目录中。

仅打包主文件和 images 子目录:

adt –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.swf images

打包基于 HTML 的应用程序和 HTML、scripts 和 images 子目录中的所有文件:

adt –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml index.html AIRALiases.js html scripts images

打包位于工作目录 (release/bin) 中的 application.xml 文件和主 SWF:

adt –package -storetype pkcs12 -keystore cert.p12 myApp.air release/bin/myApp.xml –C release/bin myApp.swf 

对生成文件系统的多个位置的资源打包。在本例中,应用程序资源在打包前位于以下文件夹:

/devRoot 
    /myApp 
        /release 
            /bin 
                myApp-app.xml 
                myApp.swf or myApp.html 
    /artwork 
        /myApp 
            /images 
                image-1.png 
                ... 
                image-n.png 
    /libraries 
        /release 
            /libs 
                lib-1.swf 
                lib-2.swf 
                lib-a.js 
                AIRAliases.js

从 /devRoot/myApp 目录运行以下 ADT 命令:

adt –package -storetype pkcs12 -keystore cert.p12 myApp.air release/bin/myApp-app.xml  
    –C release/bin myApp.swf (or myApp.html) 
    –C ../artwork/myApp images  
    –C ../libraries/release libs

生成以下包结构:

/myAppRoot 
    /META-INF 
        /AIR 
            application.xml 
            hash 
    myApp.swf or myApp.html 
    mimetype 
    /images 
        image-1.png 
        ... 
        image-n.png 
    /libs 
        lib-1.swf 
        lib-2.swf 
        lib-a.js 
        AIRAliases.js

对于简单的基于 SWF 的应用程序,将 ADT 作为 Java 程序运行(无需设置类路径):

java –jar {AIRSDK}/lib/ADT.jar –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.swf 

对于简单的基于 HTML 的应用程序,将 ADT 作为 Java 程序运行(无需设置类路径):

java –jar {AIRSDK}/lib/ADT.jar –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.html AIRAliases.js

作为 Java 程序运行 ADT(将 Java 类路径设置为包含 ADT.jar 包):

java -com.adobe.air.ADT –package -storetype pkcs12 -keystore cert.p12 myApp.air myApp.xml myApp.swf 

在 Apache Ant 中将 ADT 作为 Java 任务运行(尽管通常最好是直接在 Ant 脚本中使用 ADT 命令)。示例中显示的路径是针对 Windows 的路径:

<property name="SDK_HOME" value="C:/AIRSDK"/> 
<property name="ADT.JAR" value="${SDK_HOME}/lib/adt.jar"/> 
 
target name="package"> 
    <java jar="${ADT.JAR}" fork="true" failonerror="true"> 
        <arg value="-package"/> 
        <arg value="-storetype"/> 
        <arg value="pkcs12"/> 
        <arg value="-keystore"/> 
        <arg value="../../ExampleCert.p12"/> 
        <arg value="myApp.air"/> 
        <arg value="myApp-app.xml"/> 
        <arg value="myApp.swf"/> 
        <arg value="icons/*.png"/> 
    </java> 
</target>
注: 某些计算机系统可能会错误地解释文件系统路径中的双字节字符。如果发生此情况,请尝试将用于运行 ADT 的 JRE 设置为使用 UTF-8 字符集。用于在 Mac 和 Linux 上启动 ADT 的脚本默认采用此设置。在 Windows adt.bat 文件中,或当您直接从 Java 运行 ADT 时,请在 Java 命令行上指定 -Dfile.encoding=UTF-8 选项。