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 App Store 散佈的 iOS 套件。

    • ipa-debug — 具有額外除錯資訊的 iOS 套件。(應用程式中的 SWF 檔案也必須使用除錯支援來編譯)。

    • ipa-test — 已編譯的 iOS 套件,但沒有最佳化或除錯資訊。

    • ipa-debug-interpreter — 功能等於除錯套件,但編譯速度更快。不過,ActionScript 著色器會進行解譯,而不是轉譯為機器碼。因此,解譯器套件中的程式碼執行比較慢。

    • ipa-debug-interpreter-simulator — 功能等於 ipa-debug-interpreter,但封裝成 iOS 模擬器。僅適用於 Macintosh。如果您使用這個選項,則也必須加入 -platformsdk 選項,以指定 iOS 模擬器 SDK 的路徑。

    • ipa-test-interpreter — 功能等於測試套件,但編譯速度更快。不過,ActionScript 著色器會進行解譯,而不是轉譯為機器碼。因此,解譯器套件中的程式碼執行比較慢。

    • ipa-test-interpreter-simulator — 功能等於 ipa-test-interpreter,但封裝成 iOS 模擬器。僅適用於 Macintosh。如果您使用這個選項,則也必須加入 -platformsdk 選項,以指定 iOS 模擬器 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 元件庫的來源顯示元件庫的元件 (yes) 還是全域顯示 (no):

  • yes — 隱藏 ANE 元件,以便解決非預期的元件衝突問題。

  • no — (預設值) 不要隱藏 ANE 元件。這是 AIR 3.4 發行前版本的行為。

-embedBitcode (僅限 iOS、AIR 25 和更新版本) 應用程式開發人員可以指定 yes 或 no,藉此使用 embedBitcode 選項指定是否要在 iOS 應用程式中內嵌位元程式碼。若未指定,此參數的預設值為 no。

DEBUGGER_CONNECTION_OPTIONS 除錯程式連線選項會指定除錯套件是應該嘗試連線至另一部電腦上執行的遠端除錯程式,還是偵聽來自遠端除錯程式的連線。這組選項只支援行動除錯套件 (目標 apk-debug 和 ipa-debug)。如需有關這些選項的詳細資訊,請參閱除錯程式連線選項

-airDownloadURL 指定將 AIR 執行階段下載並安裝到 Android 裝置時所需的替代 URL。如果未指定,AIR 應用程式會將使用者重新導向至 Android Market 上的 AIR 執行階段 (如果使用者尚未安裝該執行階段)。

如果您的應用程式是透過其他市場散佈 (不是透過 Google 所經營的 Android Market),您可能需要指定從該市場下載 AIR 執行階段時所需的 URL。某些替代市場不允許應用程式要求使用者從市場以外的位置進行下載。此選項只支援 Android 套件。

NATIVE_SIGNING_OPTIONS:原生簽署選項會識別用來簽署原生套件檔案的憑證。您可以使用這些簽署選項來套用原生作業系統 (而不是 AIR 執行階段) 所使用的簽名。這些選項與 AIR_SIGNING_OPTIONS 中的選項相同,您可以在 ADT 程式碼簽署選項中找到完整的說明。

Windows 與 Android 皆支援原生簽名。在 Windows 上,必須同時指定 AIR 簽署選項與原生簽署選項。但在 Android 上,只能指定原生簽署選項。

在許多情況下,您可以使用相同的程式碼簽署憑證來同時套用 AIR 與原生簽名。不過,這並非適用於所有的情況。例如,Google 針對將應用程式送出至 Android Market 的政策中,規定所有的應用程式都必須以有效期至少到 2033 年的憑證來簽署。這表示由知名的憑證授權單位所核發的憑證 (建議您在套用 AIR 簽名時使用的憑證) 不得用來簽署 Android 應用程式 (沒有任何憑證授權單位會核發有效期限如此長的程式碼簽署憑證)。

output:要建立的套件檔案名稱。您可以選擇是否要指定副檔名。如果不指定,系統便會新增適用於 -target 值和目前作業系統的副檔名。

app_descriptor:應用程式描述器檔案的路徑。指定路徑時,可以將路徑指定為相對於目前的目錄,或者指定為絕對路徑 (在 AIR 檔中,應用程式描述器檔案會重新命名為 application.xml)。

-platformsdk:目標裝置的平台 SDK 路徑:
  • Android - AIR 2.6+ SDK 包括實作相關 ADT 命令所需的 Android SDK 工具。只有當您想要使用不同版本的 Android SDK 時,才需要設定此值。另外,如果已經設定 AIR_ANDROID_SDK_HOME 環境變數,便不需要在命令列上提供平台 SDK 路徑 (如果兩者均已設定,則會使用命令列上提供的路徑)。

  • iOS - AIR SDK 隨附固定 iOS SDK。-platformsdk 選項可讓您使用外部 SDK 封裝應用程式,如此,就不會受限只能使用固定 iOS SDK。例如,如果您使用過最新的 iOS SDK 來建置擴充功能,則在封裝應用程式時可以指定該 SDK。此外,在搭配使用 ADT 與 iOS 模擬器時,您也必須一律加入 -platformsdk 選項,以指定 iOS 模擬器 SDK 的路徑。

-arch:應用程式開發人員可以使用這個引數來建立 x86 平台適用的 APK,它接受下列值:

  • armv7 - 表示 Android armv7 平台的 ADT 套件 APK。

  • x86 - 表示 Android x86 平台的 ADT 套件 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 .
備註: 金鑰儲存檔案包含用於簽署應用程式的私有金鑰。因此,請務必不要將簽署憑證納入 AIR 套件中!如果您在 ADT 命令中使用萬用字元,請將金鑰儲存檔案放置於不同的位置,不要將它納入套件中。在上述範例中,金鑰儲存檔案 cert.p12 是位於上層目錄中。

僅封裝主要檔案和影像子目錄:

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

封裝 HTML 類型應用程式和 HTML 中的所有檔案、Script 和影像子目錄:

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

將 ADT 當做 Java 程式執行 (設定 Java 類別路徑以包含 ADT.jar 套件):

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

在 Apache Ant 中以 Java 工作的方式執行 ADT (通常最佳作法是直接在 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 選項。