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