Как связать собственное расширение Adobe AIR3 для iOS с платформой iOS?

#ios #linker #air #native

#iOS #компоновщик #air #родной

Вопрос:

Я работаю над приложением с собственным расширением AIR3 для iOS, которое использует Accelerate.framework

Выполнил первые шаги, упомянутые в руководствах, успешно создал файл .ane и т. Д.

Когда я запускаю команду окончательной упаковки (adt -package -target ipa-test …), я получаю следующие ошибки:

 ld warning: unexpected srelocation type 9
ld warning: unexpected srelocation type 9
  

… (повторяется несколько раз)

 Undefined symbols:
  "_vDSP_vsdiv", referenced from: ...
  "_vDSP_vsmul", referenced from: ...
  

… еще несколько подобных

 ld: symbol(s) not found
Compilation failed while executing : ld64
  

Я думаю, это потому, что, когда я создавал файл .a в xcode, он не мог статически связать его с Accelerate.framework.

Полагаю, мне нужно сказать adt, чтобы он как-то связал его? Возможно, на этапе создания файла .ane? Или, может быть, мне следует изменить свой extension.xml файл?

Понятия не имею. Не удалось его найти…

Пожалуйста, посоветуйте.

ОБНОВЛЕНИЕ: это похоже на ошибку на стороне Adobe, особенно в Accelerate.framework. Я буду продолжать обновлять здесь на случай, если другие ребята наткнутся на это.

Ответ №1:

Убедитесь, что вы используете последнюю версию Flex 4.6 SDK. Если это не решит проблему, убедитесь, что вы правильно указали Apple iOS SDK на вкладке «Собственные расширения» вашего пакета сборки Apple iOS в настройках проекта. Это должно быть

/Разработчик/ Платформы/iPhoneOS.platform/Разработчик / SDKs/iPhoneOS5.0.sdk

если вы установили Xcode в папку по умолчанию

Ответ №2:

У меня была эта ошибка «srelocation», потому что включенные библиотеки (в моем случае AudioToolbox / OpenAL) рассматривались XCode как разделяемые библиотеки: они не были включены в мою сборку библиотеки (даже если она статична). Мне пришлось установить для параметра «Включить связывание с разделяемыми библиотеками» в настройках сборки значение «НЕТ», а затем ошибки исчезли. Возможно, это тоже решит вашу проблему…

Комментарии:

1. очень интересно … не знал об этой опции, и это кажется хорошим направлением… Однако, когда я устанавливаю для него значение NO, я получаю ошибку сборки: Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

2. Хорошо, попробовал еще раз с LLVM 3.0, и это сработало, и действительно, оно устраняет предупреждения о перемещении, так что спасибо вам за это. Но это не решает мою первоначальную проблему…

3. Я пробовал это с AddressBook framework, но у меня это не работает. Вы, ребята, пробовали это с AddressBook framework. Большое спасибо.

4. @kblau: это не удалило мои 12000 предупреждений о перемещении с помощью GoogleAdMob, а также привело к сбою приложения в первой строке делегата приложения (теперь это iphone).