PDA

Просмотр полной версии : формирование portable приложения AIR для ПК


pomuс
13.07.2013, 18:11
Да простят меня боги флеша, тема подымалась уже ни раз, и так не была доведена мною до конца. Сейчас я полон решимостью завершить вопрос, и думаю будет смысл мне написать на эту тему урок, т.к. знаю, что вопрос действительно актуален многим.
Итак:что требуется получить?
-независимое (не требующее учтановки AIR и самой установки) приложение в виде .exe для Win, и пакета .app для Mac. Нужно чтобы это был исполняющий файл, но чтобы он также ссылался на источники из своей директории (картинки, xml файлы) То есть то, что делает обычный swf. Аналог того что нужно получить - Zinc приложения.
В чем проблема?
в сети крайне мало информации о том как можно сделать этот captive runtime (как указано в Adobe). Сами адобовцы объясняют все просто
Чтобы создать связанный пакет среды выполнения для ОС Windows, необходимо создать пакет приложения в операционной системе Windows. Упакуйте приложение с использованием цели ADT bundle:

adt -package
-keystore ..\cert.p12 -storetype pkcs12
-target bundle
myApp
myApp-app.xml
myApp.swf icons resources

Но не тут то было. Вставляя эти строки в Packager.bat (Работаю в FlashDevelop)
до в шаблоне
call adt -package %OPTIONS% %SIGNING_OPTIONS% %OUTPUT% %APP_XML% %FILE_OR_DIR%
после изменений
call adt -package
-keystore ..\cert.p12 -storetype pkcs12
-target bundle
myApp
myApp-app.xml
myApp.swf icons resources
Если прописывать с командой call то выдается такая ошибка
http://puu.sh/3BSYv.png

Возникает вопрос - что такое myApp? это онтносительный каталог или фактический, который надо перименовывать? Они пишут
"Эта команда создает пакет в каталоге myApp."
как понимать - по подсветки синтаксиса логично что myApp это внутренее понятие самого проекта, а не его название. :)

Что получилось?
БЕЗ call
http://puu.sh/3BSh1.png
http://puu.sh/3BS9D.png
Тут по недостатку аргументов я ничего не смог нарыть в сети. В чем проблема, непонятно

C4Grey
13.07.2013, 19:15
call adt -package
-keystore ..\cert.p12 -storetype pkcs12
-target bundle
myApp
myApp-app.xml
myApp.swf icons resources
Это нужно написать в одну строку, без переносов. Приложение должно поддерживать профиль extendedDesktop(либо не указывать никаких профилей). Да, и советаю не заморачиваться с bat-файлами, а сделать Ant-файлы для билдов, очень удобная и гибка штука, учитывая что его можно расширять при помощи собственных модулей на Java(например, добавить отправку определенного билда на сервер тестерам + оповещение по e-mail, если нет билд-сервера). Для FlashDevelop есть неплохой плагин, который позволяет запускать цели Ant прямо из IDE, и перенаправляет вывод Ant в Output-панель.
P.S.
Минимально измененный шаблон проекта AIR с добавкой цели bundle: http://d.pr/f/Qt1Z

pomuс
14.07.2013, 00:21
то ли санки не едут... то ли ...
http://puu.sh/3C6iE.jpg
поле для пароля не реагирует.. в сети нашел инфо что и не будет, просто надо вверно ввести пароль сертификата. Ввожу- ничего
пробуя прописать к строке -storepass %CERT_PASS% - пишет что неверный пароль.
Пароль пробовал по стандарту, (fd) так и другие
set CERT_PASS=anyword

что на этот раз не так?

P.S. по поводу ant файлов.. тут я вообще далек о чем идет речь. Мне бы с этим разобраться

Bgg
14.07.2013, 03:52
FlashBuilder/IDEA делают то что вам надо нажатием одной кнопки.

Sync
14.07.2013, 04:32
Попробуйте перегенерировать .p12

pomuс
14.07.2013, 11:06
...даже не знаю как прокоментировать такие ответы.
Bgg я не зря подметил - работаю в FD.
Sync как вы интересно видите вообще возможность отсутствия сертификата, если я написал о том что я задавал ему разные пароли?

Sync
14.07.2013, 11:31
по этому я и написал ПЕРЕгенерировать. не надо комментировать ответы, надо чинить.

pomuс
14.07.2013, 11:50
в любом случае не работает. Задаю новый пароль, генерирую, ввожу, - неверный пароль..
прикладываю проект, хотя кроме базовых настроек и указаных выше манипуляций ничего там нет

C4Grey
14.07.2013, 16:49
Складывается впечетление, что ты методом тыка пытаешся собрать проект :) Во-первых, пароль нужно писать без лапок(не CERT_PASS="fd", а CERT_PASS=fd). Во-вторых, сам посмотри что ты указываешь в строке комманды сборки:
call adt -package -keystore ..\cert.p12 -storetype pkcs12
keystore - путь к файлу сертификата, он у тебя просто скопирован с примера.
В-третьих, нужно(хотя и не обязательно) указать storepass, чтобы не вводить его каждый раз:
-storepass %CERT_PASS%
Вот полная строка:
SIGNING_OPTIONS=-storetype pkcs12 -keystore %CERT_FILE% -storepass %CERT_PASS%

pomuс
14.07.2013, 17:53
ну слава яйцам! Разобрался с вашей помощью.
http://puu.sh/3CCWv.png
Сейчас все очевидно, что каждому тому значению надо было прописать переменные из шаблона или правильно прописать пути... А то так черт ногу сломит, честное слово

pomuс
19.07.2013, 01:36
Казалось бы все закончилось и все просто.. Но нет. Столкнулся еще с 1 проблемкой
1) при указании иконок для приложения, packager настырно выкидывает мне ошибки
Packaging Air EXECUTEABLE AIR using certificate "bat\catalogue.p12"...
C:\Users\PoMka\Desktop\projects\KATALOG\Catalogue for AIR\application.xml: error
303: Icon Catalogue32.png is missing from package
Казалось бы - все просто и ошибка только в директории к картинкам. Но нет, как я только не пробовал располагать эти иконки- ошибка все равно вылетает. В сети все лечения также указывают на директории.. не понимаю...
http://puu.sh/3G6t4.png

Добавлено через 12 часов 49 минут
эквпериментальным путем нашел такую закономерность- создавая новый проект например New Project и загружая к нему через таг icon икноки, например с именем icon16.png при упаковке все равно выстреливает ошибка. Лечится это путем указания путей к иконкам через настройки AIR проекта. В application.xml вписываются имена как icons/NewProject16.png. Если переименовать сам xml тег, то ошибка, если переименовать сам файл иконки - все ОК.
Что это за бред такой? что надо указывать в путях? и опять же, в примере выше, я пробовал перименовывать всё и вся...

Добавлено через 43 часа 10 минут
2) на сайте адобов пишут, что можно также создать и bundle package для Mac OS.
http://help.adobe.com/en_US/air/build/WSfffb011ac560372f709e16db131e43659b9-8000.html
наверняка они подразумевают вписывание этого кода в Flash Builder из самой системы mac OS

Вопрос - как сделать приложение для Mac в FlashDevelop, если FlashDeveloper нету под Mac?