Команда 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».

Флаг -migrate команды -package доступен в версиях AIR 3.6 и более поздних.

-target Тип создаваемого пакета. Поддерживаются следующие типы пакетов:
  • air — пакет AIR. «air» — это значение по умолчанию. При создании файлов AIR и AIRI указывать флаг -target не требуется.

  • airn — исходный пакет приложения для устройств с расширенным профилем телевизионных устройств.

  • ane — пакет собственных расширений AIR

  • Целевые объекты пакета Android:

    • apk — пакет Android. Пакет такого типа может быть установлен только на устройство Android, не на эмулятор.

    • apk‑captive‑runtime — пакет Android, включающий приложение и встроенную версию среды выполнения AIR. Пакет такого типа может быть установлен только на устройство Android, не на эмулятор.

    • apk-debug — пакет Android с дополнительной информацией для отладки. (SWF-файлы приложения также должны быть скомпилированы с поддержкой отладки.)

    • apk-emulator — пакет Android, предназначенный для использования в эмуляторе без поддержки отладки. (Чтобы разрешить отладку одновременно на эмуляторе и устройстве, используйте флаг apk-debug.)

    • apk-profile — пакет Android, поддерживающий профили производительности и памяти приложения.

  • Целевые объекты пакета iOS:

    • ipa-ad-hoc — пакет iOS для специального развертывания.

    • ipa-app-store — пакет iOS для распространения через Apple App Store.

    • ipa-debug — пакет an iOS с дополнительной информацией для отладки. (SWF-файлы приложения также должны быть скомпилированы с поддержкой отладки.)

    • ipa-test — пакет iOS, скомпилированный без информации для оптимизации и отладки.

    • ipa-debug-interpreter — функциональные возможности, как у пакета отладки, но компиляция выполняется быстрее. Однако байт-код ActionScript интерпретируется и не преобразуется в машинный код. Поэтому в пакете интерпретатора код выполняется медленнее.

    • ipa-debug-interpreter-simulator — функциональность эквивалентна ipa-debug-interpreter, но пакет предназначен для приложения iOS Simulator. Только для компьютеров Macintosh. Если используется этот параметр, необходимо также добавить параметр -platformsdk, указав путь к набору средств SDK приложения iOS Simulator.

    • ipa-test-interpreter — функциональные возможности, как у пакета тестирования, но компиляция выполняется быстрее. Однако байт-код ActionScript интерпретируется и не преобразуется в машинный код. Поэтому в пакете интерпретатора код выполняется медленнее.

    • ipa-test-interpreter-simulator — функциональность эквивалентна ipa-test-interpreter, но пакет предназначен для приложения iOS Simulator. Только для компьютеров Macintosh. Если используется этот параметр, необходимо также добавить параметр -platformsdk, указав путь к набору средств SDK приложения iOS Simulator.

  • native — исходный установщик для настольных систем. Тип создаваемого файла соответствует исходному формату установщика операционной системы, в которой выполняется команда:

    • EXE — Windows

    • DMG — Mac

    • DEB — Ubuntu Linux (AIR 2.6 или более ранней версии)

    • RPM — Fedora или OpenSuse Linux (AIR 2.6 или более ранней версии)

    Дополнительные сведения см. в разделе «Упаковка собственного установщика для настольной системы».

-sampler (только iOS, AIR 3.4 и более поздней версии) Включает сэмплер ActionScript, основанный на телеметрии, в приложениях для iOS. Использование этого флага позволяет произвести профилирование приложения с помощью инструмента Adobe Scout. Несмотря на то, что инструмент Scout позволяет выполнить профилирование любого содержимого платформы Flash, включение подробной телеметрии дает более полное представление о времени вызова функций ActionScript, списке DisplayList, визуализации Stage3D и т. д. Включение этого флага приводит к незначительному ухудшению производительности, поэтому не используйте его в окончательных сборках приложений.

-hideAneLibSymbols (только iOS, AIR 3.4 и более поздних версий) Разработчики приложений могут использовать несколько расширений в машинном коде из различных источников, и если файлы ANE содержат одинаковые имена символов, ADT сгенерирует ошибку «duplicate symbol in object file» (дублирование символов в объектном файле). В некоторых случаях эта ошибка может проявиться в виде непредвиденного завершения во время выполнения. Параметр hideAneLibSymbols позволяет указать, сделать ли символы библиотеки ANE видимыми только для исходных кодов только этой библиотеки (yes) или видимыми глобально (no):

  • yes — скрывает символы ANE, за счет чего устраняются любые непреднамеренные конфликты имен.

  • no — (по умолчанию) символы ANE не скрываются. Это поведение соответствует версиям AIR ниже 3.4

-embedBitcode (только для ОС iOS, AIR 25 или более поздних версий) Разработчики могут использовать параметр embedBitcode для указания того, требуется ли встраивать двоичный код в приложения для iOS («Да» или «Нет»). Если не указано иное, для этого параметра используется значение по умолчанию «Нет».

DEBUGGER_CONNECTION_OPTIONS Параметры подключения к отладчику указывают, должен ли пакет отладки подключаться к удаленному отладчику, запущенному на другом компьютере, или прослушивать соединение удаленного отладчика. Этот набор параметров поддерживают только мобильные пакеты отладки (с типом apk-debug и ipa-debug). Эти параметры описаны в разделе «Параметры подключения к отладчику».

-airDownloadURL — указывает альтернативный URL для загрузки и установки среды выполнения AIR на устройствах Android. Если параметр не указан и среда выполнения не установлена, приложение AIR будет перенаправлять пользователя к среде выполнения AIR на Android Маркет.

Если приложение распространяется через альтернативные рынки (отличные от Android Маркета, управляемого Google), возможно потребуется указать URL для загрузки среды выполнения AIR с этого рынка. Некоторые альтернативные рынки не разрешают приложениям запрашивать загрузку из внешних источников. Этот параметр поддерживается только пакетами Android.

NATIVE_SIGNING_OPTIONS Параметры исходной подписи указывают сертификат, который используется для подписания файла исходного пакета. Данный параметр предназначен для применения подписи, используемой исходной операционной системой, не средой выполнения AIR. В остальном параметры идентичны параметрам AIR_SIGNING_OPTIONS. Подробное описание этих параметров приведено в разделе Параметры подписания кода ADT.

Исходные подписи поддерживаются в Windows и Android. В Windows необходимо задать параметры подписи AIR и параметры исходной подписи. В Android можно задать только параметры исходной подписи.

Во многих случаях для применения подписи AIR и исходной подписи можно использовать сертификат подписи кода. Однако это верно не для всех ситуаций. Например, в соответствии с политикой Google для приложений, размещаемых в Android Маркете, необходимо, чтобы все приложения были подписаны сертификатом, действительным по крайней мере до 2033 года. Это означает, что для подписания приложений Android не следует использовать сертификат, выданный известным сертифицирующим органом, который рекомендуется для применения подписи AIR (ни один из сертифицирующих органов не выдает сертификаты для подписания кода с таким сроком действия).

output — имя создаваемого файла пакета. Указание расширения файла не является обязательным. Если расширение не указано, добавляется расширение, определяемое значением параметра -target и текущей операционной системой.

app_descriptor — путь к файлу дескриптора приложения. Можно задать абсолютный путь или путь относительно текущей директории. (В файле AIR имя файла дескриптора приложения изменяется на application.xml.)

-platformsdk — путь к SDK платформы для целевого устройства:
  • Android — в состав пакета SDK AIR 2.6 и более поздних версий включены инструменты из пакета SDK для ОС Android, необходимые для реализации соответствующих команд ADT. Данный параметр следует задавать только для использования другой версии Android SDK. Кроме того, путь к платформе SDK не требуется указывать в командной строке, если уже установлена переменная среды AIR_ANDROID_SDK_HOME (если заданы оба значения, используется путь, указанный в командной строке).

  • iOS — в комплект поставки набора средств SDK для AIR входит связанный набор SDK для iOS. Параметр -platformsdk позволяет создавать пакеты приложений с внешним набором средств SDK, чтобы не ограничиваться использованием только набора SDK для iOS. Например, если с помощью самой последней версии набора SDK для iOS создано расширение, можно указать этот набор SDK при формировании пакета приложения. Кроме того, если вместе с приложением iOS Simulator используется ADT, необходимо всегда добавлять параметр -platformsdk, указав путь к набору средств SDK приложения iOS Simulator.

-arch Разработчики приложений могут использовать этот аргумент, чтобы создавать APK для платформ x86, принимает следующие значения:

  • armv7 — ADT упаковывает APK для платформы Android armv7.

  • x86 — ADT упаковывает APK для платформы Android x86.

armv7 используется по умолчанию, если значение не определено

FILE_OPTIONS — указывает, какие файлы приложения включаются в пакет. Подробное описание параметров файлов приведено в разделе «Параметры файлов и путей». Не указывайте параметры файлов при создании исходного пакета на основе файла AIR или AIRI.

input_airi — указывается при создании исходного пакета из файла AIRI. Параметр AIR_SIGNING_OPTIONS требуется указать, если для пакета задан тип air (или тип пакета не указан).

input_air Указывается при создании исходного пакета на основе файла AIR. Не указывайте параметр AIR_SIGNING_OPTIONS.

ANE_OPTIONS — указываются параметры и файлы для создания пакета собственных расширений. Полное описание параметров пакета расширений приводится в разделе Параметры собственных расширений.

Примеры использования команды ADT -package

Упаковка файлов приложения в текущей папке для приложения AIR на основе SWF:

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

Упаковка файлов приложения в текущей папке для приложения AIR на основе HTML:

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 находится в родительском каталоге.

Включайте в пакет только основные файлы и подкаталог 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

Включайте в пакет файл application.xml и основной SWF-файл в рабочем каталоге (release/bin):

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

Выполнение команды ADT из каталога /devRoot/myApp:

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

Запустите ADT в качестве программы Java для простого приложения на основе SWF (без указания пути к классам):

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

Запустите ADT в качестве программы Java для простого приложения на основе HTML (без указания пути к классам):

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 

Запускает ADT в виде задачи Java в Apache Ant (несмотря на то, что рекомендуемым вариантом является запуск команды ADT непосредственно из скрипта Ant). Пути в данном примере указаны для ОС 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>
Примечание. В некоторых системах двухбайтные символы, входящие в путь файла, могут быть интерпретированы неверно. Если это произойдет, попробуйте настроить для среды JRE, с помощью которой запускается ADT, использование набора символов UTF-8. Это выполняется по умолчанию в сценарии, который используется для запуска ADT на Mac и Linux. В фале adt.bat для Windows или при запуске ADT непосредственно из Java укажите параметр ‑Dfile.encoding=UTF-8 в командной строке Java.