response-native-intercom выдает загадочную ошибку - неопределенные символы для архитектуры x86_64
Я использую плагин response-native-intercom вместе с последней библиотекой interos ios, использующей ручное связывание.
Проект строится нормально до стадии связывания, а затем выдает эту ошибку.
Я выполнил все шаги, описанные в процессе связывания руководства по внутренней связи, включая добавление сценария стрип-рамок в качестве фазы запуска сценария в настройках сборки.
Это сообщение об ошибке, которое он выдает.
undef: _OBJC_CLASS_$_ICMCompany
undef: _OBJC_CLASS_$_ICMUserAttributes
undef: _IntercomUnreadConversationCountDidChangeNotification
undef: _OBJC_CLASS_$_Intercom
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_ICMCompany", referenced from:
objc-class-ref in libRNIntercom.a(IntercomUserAttributesBuilder.o)
"_OBJC_CLASS_$_ICMUserAttributes", referenced from:
objc-class-ref in libRNIntercom.a(IntercomUserAttributesBuilder.o)
"_IntercomUnreadConversationCountDidChangeNotification", referenced
from:
___48-[IntercomEventEmitter handleUpdateUnreadCount:]_block_invoke in libRNIntercom.a(IntercomEventEmitter.o)
-[IntercomEventEmitter constantsToExport] in libRNIntercom.a(IntercomEventEmitter.o)
-[IntercomEventEmitter supportedEvents] in libRNIntercom.a(IntercomEventEmitter.o)
-[IntercomEventEmitter startObserving] in libRNIntercom.a(IntercomEventEmitter.o)
"_OBJC_CLASS_$_Intercom", referenced from:
objc-class-ref in AppDelegate.o
(maybe you meant: _OBJC_CLASS_$_IntercomUserAttributesBuilder,
_OBJC_CLASS_$_IntercomWrapper , _OBJC_CLASS_$_IntercomEventEmitter )
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
Я предполагаю, что это как-то связано с архитектурами фреймворка, поддерживаемыми проектом, но я новичок в сборках iOS и не знаю, как это исправить.
2 ответа
Во время установки интеркома необходимо добавить этап запуска сценария:
bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Intercom.framework/strip-frameworks.sh"
Вы должны убедиться, что этот этап действительно выполняется.
Попробуйте использовать неверный путь, например /Intercom.framework/foo/strip-frameworks.sh
, и если процесс сборки не дает ошибок из-за вышеуказанного изменения, то есть проблемы в другом месте, и вам нужно убедиться, что вы правильно выполнили другие шаги установки.
Пока этот скрипт выполняется, он будет корректно очищать структуру.
Это заняло у меня некоторое время, но я смог отладить его таким образом, и в итоге получил 12.3.0
,
Я решил проблему, удалив инфраструктуру Intercom из Xcode и снова установив ее из файла pod.
target :"YourTargetName"do
pod 'Intercom'
end