Невозможно скомпилировать Aviary на iOS с SDK 4.4

Я не могу запустить свое приложение только на iOS Simulator, так как я обновил 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

Каркас и пакет видны в "Связать двоичные файлы с библиотеками" и "Ресурсы пакета".

Путь поиска фреймворка в порядке в настройках сборки.

Похоже, фреймворк Aviary был управляем дважды?

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

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

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;
Другие вопросы по тегам