Разработка под iOS: Создание Certificate и Provisioning файлов в Windows

Отличный скринкаст о создании файлов Certificate и Provisioning в Windows. Эти файлы необходимы для разработки мобильных приложений для iPhone, iPad, iPod Touch, в том числе Air приложений, которые мы пишем с помощью Flash Professional CS5 или Flash Builder 4.
 
 
 
 
Ссылка:

Developing iOS Applications on Windows
Learn how to set up your development environment to build iOS apps on Windows.

Вместе с автором видео мы за несколько минут получим на руки файлы, необходимые для разработки приложения. Подробно показаны все шаги: установка на компьютер программы OpenSSL и работа с ней, заполнение всех форм на сайте в разделе iOS Provisioning Portal, создание тестового приложения и его запуск на реальном устройстве.

Разумеется всю эту информацию можно прочитать на сайте Adobe Flash Platform. Более того, эти страницы фигурируют в самом видео. Но тут уж кому как больше нравится.

P.S.
Не перестаю мысленно и вслух благодарить тов. SeeD'а всякий раз, когда вспоминаю свои первые шаги в разработке AIR приложений под iOS.
  • +12

Комментарии (37)

0
спасибки, посмотрю. Только начинаю рыть в эту сторону
0
очень полезное видео для начала разработки, но к сожалению там нет про создание дистрибьюторского сертификата под виндой, а это уже другая песня.
0
Ага, с этим еще предстоит разобраться.
0
не ругайте меня, но что это такое «создание дистрибьюторского сертификата под виндой»?
+2
Девелоперский сертификат дает возможнось собирать и тестить ipa на своем устройстве, а для распространения потребуется уже дистрибьютерский, который нужен для публикации в App Store или тестирования на разных устройствах. А для тестирования есть хороший сервис testflightapp.com и одна из его хорошестей заключается в том, что он не даст загрузить в себя ipa'шник, собранный с неправильным сертификатом.
0
благодарю
+1
Спасиииибко :-)
  • SeeD
  • SeeD
0
Никто не поделится опытом дистрибуции на iTunes платных AIR игр или приложений?
Хоть насколько высок спрос, конкуренция, конверсия, какие есть сложности, нюансы?

Вот читал недавно, что Андроид маркет дает в 10 меньше денег чем iTunes.
0
Так и думал, что до реального продакшена мало кто дошел.
+1
Конкуренция очень большая. В среднем, если игру не пропихивать — на ней не более $1000 заработаешь за 3 месяца.
Никаких сложностей в продажах нет. Одна трудность — это правильно писать код, чтоб он был оптимизирован и не разбрасываться ресурсами, как это любят делать рисовальщики баннеров, где 240х400 баннеры жрут 50% компа и содержат в себе 2000х2000 джепеги ))))
+1
Еще забыл… самое главное — иметь девайс, на котором тестировать. Иначе даже не стоит пробовать.
0
iPad2 пойдет?
0
Спасибо. А если флексовское приложение (почти без анимации)?
Пропихивать как посоветуете? Я планирую создать сетку из нескольких игр и приложений которые друг друга продвигают. Ну и, конечно, реклама, блоги, форумы, социалки.
+1
Подойдет любой iOS девайс, у которого процессор ARM не ниже 7 версии

Т.е. iPad1, iPad2, iPad3, iPhone 3gs, iPhone 4, 4s и какие-то iPod touch не помню именно )
Версия прошивки не ниже 4.0 но желательно не ниже 4.3 для новых версий Air

На сегодня официально доступна Air 3.2 которая поддерживает Direct ускорение что дает возможность юзать 3D
В среднем для iOS чтоб писать — надо много research делать :) Я этим занимался около полу года )
+1
Flex это тот же самый Flash, только сделан через задницу, как говорят некоторые программеры :)

А на деле всё равно на чем делать. Главное в конце получить swf файл который скормлен должен быть ADT упаковщику, который сделает IPA файл для размещения на девайсе.

А что скачивать, где и для чего — я уже не буду рассказывать ) Тут стоит понимать много моментов. На это надо время…
0
а как у флеши под iOS дела обстоят со специфичными для iOS штуками — например работа с Game Center-ом (очки, мультиплеер, ачивменты), внутри-игровые покупки, есть возможность как-то вызывать родные API iOS?
0
Я точно не помню, кажется в версии Air 3.0 появилась возможность эта… Пол года назад короче говоря… В общем на Objective-C можно компилировать Native либы *.a формата и подключать их во флеш. Всё это называется (для гугла) Air Native Extensions

Лично я уже делал in-app покупки, узнавалку UDID, работу с графическим процессором. Остается тому, кто будет делать — научиться собирать это всё дело ну и конечно же шарить в Objective-C надо )

А всякие Game Center и т.д. — работают нативно. Значит если флеш поддерживает нативные расширения то и сделать можно всё будет. Это сто процентов )
0
Существуют бесплатные и платные расширения (Native Extensions) практически на любой вкус. Для того, чтобы ими пользоваться, не нужно знать ничего, кроме ActionScript. Ну и очень помогает использовать в работе Flash Builder 4.6, который эти самые Native Extensions цепляет в проект «на лету», как какую-то swc :)

Вот немного платного.
0
я правильно понимаю что если расширение взять готовое то нет необходимости его компилить в Xcode под маком — можно подключить к Flash Builder проекту под виндой и вперед — кстати а FlashDevelop для этого не подойдет?
0
… нет необходимости его компилить в Xcode под маком
Совершенно верно. Исключение составляют только расширения, которые собраны так, что при компиляции все равно нужна iOS SDK. Такие к сожалению попадаются.

… а FlashDevelop для этого не подойдет?
Подойдет любая IDE, если хочется разбираться с adt. Если же хочется работать с расширениями в два клика, то пока вроде только Flash Builder так дружелюбен.
0
спасибо, а вообще уже кто-то пробовал Stage 3d (или фреймворк какой-то которые его использует) — говорят что производительность теперь супер — более 1000 спрайтов и 60fps — не проблема — но все же у меня какие-то сомнения есть — графика это хорошо — она теперь использует GPU — а что есть у вас много вычислений в игре — например физика — во что компилируется AS3 код при экспорте под iOS? в родной ли машинный код для ARM проца — или по прежнему в байткод который потом будет интерпретироваться некоторой средой выполнения?
0
Из описания iOS Packager:

The Packager for iPhone compiles ActionScript 3.0 bytecode into native iPhone application code.

но это ни о чем не говорит — они как то конверят байт код в исполнимый бинарник — но внутри они могут просто встроить этот байткод+виртуальную машину которая его выполняет:
0
Так и есть, даже если судить просто по производительности приложения.
+3
1. Unity3D аналогично Flash (Air) компилируется в нативное запускающее приложение свою виртуальную машину. Т.е. на выходе всё равно будет создан файлик, который будет запускать другой файлик.

На Unity3D сделано более грамотно. Там этот «движок» занимает как-то 5-6 мб, что хорошо для производительности. И всё остальные DLL файлы (да да, именно наши знакомые PC *DLL) догружаются уже по мере загрузки движка. Что позволяет усилить производительность.

На Air сделано немного не так. Там Core так называемый занимает 10 мегабайт и всё что выше — это уже Ваше приложение. Но тоже ничего не мешает создать код игры и включить в Core, как обычно. А ресурсы делать внешними. Ведь приложения, где всего 1 файл 50 мегабайт — получит краш или дикие тормоза.

2. Нативные расширения есть не на любой вкус. Их вообще не так много, как хотелось бы. Но основные нужны они покрывают — покупка в игре, связь с фейсбуком, геймцентром, поп-ап уведомления.

3. Stage3D отлично работает 1 в 1 как родной 3D у девайса. Метод отображения Air точно такой же как и у Flash для 3D — пишется Direct, хотя есть CPU и GPU.

4. На практике свой убедился, что если много анимаций в мувиклипах, где есть вложенные слои в который Bitmaps в таймлайне двигаются — надо использовать GPU для быстрой работы.

Если приложение не игровое и не требует много графики — лучше всего CPU ставить. Пример — mp3 плеер, обработчик фото. Причем для обработки фото лучше всего использовать Native Extension и в него\из него работать с ByteArray. Всё же нативно фотки обрабатываются куда быстрее.

Если мы решили 3D делать, чем я сейчас занимаюсь, то ставим Direct. Сейчас прямо под Direct собрать из Flash CS5.5 нельзя, надо немного похитрить. Но в версии Flash CS6 это будет сделано.

Не знаю как в FB4.6, но во Flash CS5.5 можно наглядно смотреть своё приложение в работе прямо во флеше. Это сильно ускоряет разработку.

5.
более 1000 спрайтов и 60fps — не проблема — но все же у меня какие-то сомнения есть — графика это хорошо — она теперь использует GPU — а что есть у вас много вычислений в игре — например физика — во что компилируется AS3 код при экспорте под iOS?

Более 1000 спрайтов и 60 fps это правда. Даже 2000 спрайтов и 59 fps тоже правда. Но суть заключается в том, что эти спрайты размещаются на 3D в виде surfaces, по-этому с обычными MovieClip такое не получится. Если это 2D игра — можно использовать любой готовый для этого движок. К примеру Starling, Nd2d…

Учитывая тот факт, что 3D работает за счет аппаратного графического чипа — высвобождается основной процессор для физики. По-этому я, в качестве примера, скажу про Alternativa3D. У меня удалось собрать приложение с кубиками, где они падают, разваливаются и т.д. Отличная производительность, 100 000 полигонов из которых 4000 участвуют в физическом мире.

6.
в родной ли машинный код для ARM проца — или по прежнему в байткод который потом будет интерпретироваться некоторой средой выполнения?
Как уже писал выше — создается нативный исполняющий файл. Но в случае Air (Flash) — в нем встроен так же код приложения. Банально если смотреть hex редактором — можно найти для глаза знакомые abc исполняющие файлы.

В общем-то тема развивается. Я официально принимаю участие в бета тестировании новых версий Air и могу сказать, что в версии 3.4 будет просто провыв. Хотя он уже в 3.3 есть, но пока доступно для всех на скачивание в виде релиза — 3.2 которая начала поддерживать Stage3D
0
Супер инфа!
А не подскажешь как лучше оптимизировать под AIR 3.2 флексовсое приложение в котором будет анимация — TweenLite некоторого кол-ва растровых объектов (10-20 шт.)?
+2
Это не очень-то и много :)

Если картинки не больше 2048х2048 то можно вообще не париться.
И TweenLite лучше заменить на TweenMax. Он почему-то живее работает.

Так же изучи вопрос cacheAsBitmapMatrix… Он позволяет не нагружая железяку — делать alpha, scale, rotate, skew и т.д. куда шустрее, чем без него )

Еще важный момент. Если картинки это jpeg (условно) и каждая по пол метра ( аля background ) клади их внешними файлами и загружай после загрузки приложения. Это серьезно сделает прирост к производительности.

Если у тебя эти картинки будут часто появляться — идеально не удалять их, чтоб не делать постоянно addChild, а исключать их из рендера (visible = false) и когда тебе будут снова нужны — просто делаешь им visible = true

Пример — слайд шоу. Чтоб каждый раз не грузить проц загрузкой, декодированием — ты просто делаешь visible = false и изображение не принимает участие в нагрузке графического процессора.

Так же можешь изучать вопрос Jpeg XR файлов ))) Но сразу говорю — мало что найдешь по инету. 8 из 10 человек даже не знают что это такое и для чего.

Этот формат позволяет загружаться в память девайса быстрее, шустрее декодируется и обрабатывается, чем png/jpeg

Но я не знаю что за приложение у тебя. Может это тебе предлагаю по воробьям из гаубицы стрелять, когда тебе и рогатка подойдет )

Можешь в приват мне написать со ссылкой на свое приложение. Я гляну и скажу норм будет рубить или надо оптимизировать.

Ну и еще — золотое правило. Если ты делаешь мультиэкранное приложение (под 480х320, 960х640, 1024х768, 2048х1536) то для каждого разрешения у тебя должна быть отдельная картинка. Или одна самая большая но ты её будешь через BitmapData резать на маленькую.

Надо избегать таких ошибок, как загрузка рисунка больше, чем экран устройства с последующим уменьшением. А то видел кучу проектов, где просят оптимизировать игру. Открываю — там графика персонажа примерно 2048х2048 и человек её масштабирует вниз до 256х256 при том, что еще ставит и allowSmoothing что дополнительно жрет ресурс и задают вопрос «почему оно тормозит» :) Я пытаюсь объяснить, что не надо так делать — на что слышу ответ типа «ну так на компе у меня же нормально всё» ))))
0
TheRabbit, имхо тебе нужно свой опыт систематизировать и в отдельном посту изложить. Очень полезно.
Спасибо!
0
По нативным расширениям могу добавить, что по личному опыту это очень сырая штука, не везде одинаково работают.

Например, расширение которое шарит изображение хорошо работало когда собирал APK ANT`ом, но когда его же стал использовать через Flash Builder 4.6 с встроенным функционалом сборки расширений, то Gmal перестал аттачить картинку.

А главный облом, это с расширением лицензирования, создание которого подробно и пошагово описано на adobe.com. Оно у меня заработало, но когда выложил на маркет, то у части юзеров при покупке программы оно не срабатывало. Представляете каково это получать гневные письма кастомеров, комменты и наблюдать падение драгоценного рейтинга.
Пришлось оперативно делать обновление без этого расширения.
+1
Ну это ты все про андроид говоришь. Там да, далековато им еще до Apple в плане унификации и предсказуемости.
0
На счет своего опыта — даже не знаю надо ли. Я работаю в Adobe и у меня каждый день просят «поделиться опытом». Я заметил чем больше помогаешь — тем больше тебе задают вопросов :) А времени на работу, куда еле попал — становится меньше.

Относительно Андроида — пробуй собирать с включенным в проект runtime, вроде если его включаешь в рантайм (нативное расширение) то его не надо лицензировать.

А на счет in-app под андроид — тема не сильно развивается ибо приоритет на рынок iOS :)
0
Я заметил чем больше помогаешь — тем больше тебе задают вопросов :) А времени на работу, куда еле попал — становится меньше.
Может статейка в блоге будет хорошим выходом? Эдакий справочник «1000 и 1 мелочь». Ну и выкладывать частями по мере накопления?
0
спасибо, то что 10мб это размер минимального Air приложения под iOS — немного расстраивает, я понимаю iOS игры имеют немного другие размеры — но например те же Angry Birds Space — 16Mb iPhone и 20Mb iPad версия — очень компактно! не хочется чтобы более половина размера игры занимал код виртуальной среды выполнения
0
Angry Birds можно и на флеше сделать в 15-16 мегабайт =)

10 будет движок занимать, остальное графика и звук. Но вообще, для очень жаждущих — можно стрипать файл компиляции. Но для этого надо много экспериментировать. Можно вырезать целые наборы библиотек. Я до 7 мегабайт опускал легко виртуальную машину
0
Я до 7 мегабайт опускал легко виртуальную машину

В мемориз )
+1
Что такое мемориз?
По делу — C:\Program Files (x86)\Adobe\Adobe Flash CS5.5\AIR2.6\lib\aot вот тут лежит всё, чтоб вырезать ненужные части кода из приложения

К примеру можно вырезать midi фрейморв, геймцентер, адресную книгу, телефонию, видео, iAd и много другого говна. Но надо потом переподписывать приложение вручную )

короче говоря геммора много но он работает )
0
http://lurkmore.to/Схоронил
0
Спасибки за инфу. Я вот тоже подумываю в обозримом будущем попробовать сиё направление… :)
  • Alxs
  • Alxs
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.