Не удается скомпилировать Aviary на iOS, начиная с SDK 4.4.

Я не могу запустить свое приложение только на симуляторе iOS, так как я обновился до Aviary SDK 4.4. Я могу запустить приложение на своем iPhone и iPad.

clang: error: linker command failed with exit code 1 (use -v to see invocation)
ld: 30 duplicate symbols for architecture x86_64

Фреймворк и пакет видны в разделах «Связывание двоичных файлов с библиотеками» и «Комплект ресурсов».

Путь поиска Framework указан в настройках сборки.

Похоже, инфраструктура Aviary управлялась дважды?

Я выхожу/перезапускаю Xcode, очищаю приложение в симуляторе iOS, очищаю цель и уничтожаю DerivedData без успеха.

Очень странно у меня нет проблем в реальных устройствах.


person alex.bour    schedule 16.12.2014    source источник
comment
Adobe купила Aviary и переместила его в Adobe SDK. Сказав это, я не смог успешно установить и скомпилировать Adobe SDK, эквивалентный Aviary, следуя их инструкции.   -  person reallyseth    schedule 16.12.2014
comment
ХОРОШО. Сегодня утром я получил обновление по электронной почте от Aviary. Вот почему я установил последнюю версию с сайта Aviary, а не с сайта Creative SDK. тоже буду тестить.   -  person alex.bour    schedule 16.12.2014
comment
Только что получил электронное письмо от службы поддержки Adobe, в котором говорилось, что они только что исправили проблему с SDK, и попросили повторно загрузить его. Хотел сообщить вам, если вы загрузили его вчера, загрузите его повторно сегодня.   -  person reallyseth    schedule 18.12.2014
comment
У меня также возникла проблема с перемещением нашего приложения с помощью AviarySDK в Adobe Creative SDK. Кажется, он пытается найти AviarySDKResource.   -  person SleepNot    schedule 18.12.2014
comment
Он все еще сломан для меня сегодня. Вы заработали с новой версией? У вас есть прямая ссылка?   -  person RealCasually    schedule 22.12.2014
comment
как я могу получить этот SDK @reallyseth   -  person Mayank Patel    schedule 08.01.2015
comment
@MayankPatel Отсюда   -  person reallyseth    schedule 08.01.2015


Ответы (1)


Я решил эту проблему. Вот как:

Решение

Не используйте #import <AviarySDK/AviarySDK.h>, вместо этого импортируйте классы, которые вы используете напрямую. Например: #import <AviarySDK/AVYPhotoEditorController.h> и т. д.

Причина

Причина, по моему мнению, заключается в недавно представленном AVYPhotoEditorCompatibility.h, который по умолчанию включен в <AviarySDK/AviarySDK.h>.

Я думаю, вот проблемный код, который использует typedef с const

typedef AVYPhotoEditorPremiumAddOn AFPhotoEditorPremiumAddOn AVY_PREMIUM_ADDON_NAMESPACE_DEPRECATED_ATTRIBUTE;
AVY_PREMIUM_ADDON_NAMESPACE_DEPRECATED_ATTRIBUTE AFPhotoEditorPremiumAddOn const AFPhotoEditorPremiumAddOnNone = AVYPhotoEditorPremiumAddOnNone;
AVY_PREMIUM_ADDON_NAMESPACE_DEPRECATED_ATTRIBUTE AFPhotoEditorPremiumAddOn const AFPhotoEditorPremiumAddOnHiRes = AVYPhotoEditorPremiumAddOnHiRes;
AVY_PREMIUM_ADDON_NAMESPACE_DEPRECATED_ATTRIBUTE AFPhotoEditorPremiumAddOn const AFPhotoEditorPremiumAddOnWhiteLabel = AVYPhotoEditorPremiumAddOnWhiteLabel;
person Tonny Xu    schedule 30.12.2014
comment
Спасибо! Это исправление хорошо сработало для меня. Также стоит отметить обновление Cocoapod для Aviary 4.4.0. - person RealCasually; 04.01.2015
comment
У меня есть почти 10 электронных писем в разговоре со службой поддержки Adobe, и они не могли понять это. Спасибо, Тонни! - person Juan González; 03.02.2015