Air Native Extension: упакованные зависимости iOS (Firebase)

У меня возникли проблемы с созданием ANE для использования с приложением iOS. Мне удалось создать базовый ANE, который регистрирует строку. Однако, когда я пытаюсь упаковать с ним фреймворки (в частности, базовые фреймворки Firebase), у меня возникают проблемы.

Я успешно создал статическую библиотеку iOS (файл .a), убедившись, что фреймворки связаны. И успешно скомпилировал часть расширения ActionScript (как для iOS, так и для реализации по умолчанию).

Что расстраивает, так это то, что мне даже удалось успешно упаковать файл .ane. Однако, когда я включаю его в сборку своего приложения в Adobe Animate/Flash, я получаю, казалось бы, бесполезное сообщение об ошибке при публикации ipa:

«Adobe Animate неверный ввод»

Кажется, что что-то не так с тем, как я упаковываю фреймворки, поскольку их удаление из ane приводит к тому, что приложение публикуется без проблем.

Файл iOS platform.xml, который я использую, имеет содержимое:

<?xml version="1.0" encoding="utf-8" ?>
<platform xmlns="http://ns.adobe.com/air/extension/3.5">
    <sdkVersion>9.3.0</sdkVersion>
    <linkerOptions>
        <option>-ios_version_min 7.0</option>
        <option>-rpath @executable_path/Frameworks</option>
    </linkerOptions>
    <packagedDependencies>
        <packagedDependency>Frameworks/FirebaseAnalytics.framework</packagedDependency>
        <packagedDependency>Frameworks/FirebaseInstanceID.framework</packagedDependency>
        <packagedDependency>Frameworks/GoogleInterchangeUtilities.framework</packagedDependency>
        <packagedDependency>Frameworks/GoogleSymbolUtilities.framework</packagedDependency>
        <packagedDependency>Frameworks/GoogleUtilities.framework</packagedDependency>
    </packagedDependencies>
</platform>

Моя структура папок для упаковки ане:

- extension.xml
- platform.xml
- Extension.swc
+ default
  - library.swf
+ ios
  - library.swf
  - libExtension.a
+ Frameworks
  - FirebaseAnalytics.framework
  - FirebaseInstanceID.framework
  - GoogleInterchangeUtilities.framework
  - GoogleSymbolUtilities.framework
  - GoogleUtilities.framework

И команда, которую я использую для создания ане (добавлены новые строки для удобочитаемости):

$ adt -package -target ane Extension.ane extension.xml -swc Extension.swc 
  -platform iPhone-ARM -platformoptions platform.xml 
  Frameworks/FirebaseAnalytics.framework 
  Frameworks/FirebaseInstanceID.framework 
  Frameworks/GoogleInterchangeUtilities.framework 
  Frameworks/GoogleSymbolUtilities.framework 
  Frameworks/GoogleUtilities.framework 
  -C ios/ . -platform default -C default/ .

Может ли кто-нибудь увидеть что-нибудь, что я делаю неправильно здесь? Учебники и документация Adobe довольно скудны в отношении упаковки сторонних зависимостей, и я не смог найти каких-либо четких примеров того, как это сделать.

Я пытался использовать Flex sdk версий 4.6.0 (поставляется с Flash Builder 4.7) и 4.15.0 (загружается непосредственно с сайта Apache). Использование Air SDK версии 22.0.0.153.


person millipede.geoff    schedule 02.08.2016    source источник


Ответы (2)


Вам нужно изменить способ встраивания файлов .framework в iOS. Вместо того, чтобы пытаться встроить их в ваш файл .ane с помощью зависимостей от платформы, вы можете скопировать их в папку «yourAirSDK\lib\aot\stub». Преимущество этого альтернативного решения заключается в том, что размер вашего файла .ane не станет слишком большим.

Мы уже создали Firebase ANE, и если вы хотите, вы можете найти дополнительные рекомендации здесь, на нашей вики https://github.com/myflashlab/Firebase-ANE/wiki/A.3.-Add-the-SDK не стесняйтесь черпать вдохновение из информации, которую вы можете найти на вики-страницах.

person MyFlashLabs    schedule 05.08.2016

загрузите admob.ane с https://github.com/monumentichb/Firebase-Admob-ANE затем добавьте его в проект flex. функция вызова с as3. ок вообще не нужен.

person stackgirl    schedule 10.08.2016