Ошибки компоновщика ионных приложений после сборки для iOS - PullRequest
1 голос
/ 15 марта 2019

Я занимаюсь разработкой приложения с использованием платформы Ionic 4 и в настоящее время пытаюсь собрать его для iOS и выпустить в App Store. Ошибка, которую я получаю, заключается в том, что при попытке запустить приложение в XCode, на этапе компоновки произойдет сбой со следующей ошибкой:

ld: 346 повторяющихся символов для архитектуры x86_64 clang: error: linker Сбой команды с кодом выхода 1 (используйте -v для просмотра вызова).

Этому предшествует список повторяющихся символов, например:

повторяющийся символ _OBJC_IVAR _ $ _ FIRInstanceIDURLQueryItem._name в: /Users/james/Library/Developer/Xcode/DerivedData/Jambox-ataoinheliizvyaczvbklhkqvhpf/Build/Products/Debug-iphonesimulator/FirebaseInstanceID/libFirebaseInstanceID.a(FIRInstanceIDURLQueryItem.o) Jambox / Плагины / Cordova-плагин-firebase / FirebaseInstanceID.framework / FirebaseInstanceID (FIRInstanceIDURLQueryItem_ce817fff617a4255d51c2a25da32a1f0.o)

Они относятся к следующим рамкам:

  • FirebaseInstanceID.framework
  • GoogleUtilities.framework

  • nanopb.framework

  • FirebaseCore.framework

Я пробовал несколько решений этой проблемы, но ни одно из них не привело к успеху:

1). Удаление -ObjC и $ (унаследованного) от других флагов компоновщика - это приводит к успешной компоновке и связыванию приложения, но при запуске происходит сбой с этой ошибкой:

*** Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '+ [FIRApp registerAsConfigurable:]: нераспознанный селектор отправлен в класс 0x1080bc178'

2). Удаление каждого фреймворка из списка дубликатов символов - это помогает уменьшить количество дубликатов символов. Я могу уменьшить его до 65 повторяющихся символов, пока мне не придется удалить GoogleUtilities.framework, что приводит к сбою сборки с этой ошибкой:

Неопределенные символы для архитектуры x86_64:
"_OBJC_CLASS _ $ _ GULObjectSwizzler", на который ссылаются: objc-class-ref в FirebasePerformance (FPRObjectInstrumentor_f65d32035cadef24185912716f0b12f9.o) objc-class-ref в FirebasePerformance (FPRNetworkTrace_3053ec2ab59f2fcfec4b18c29e4b4cec.o) objc-class-ref в FirebasePerformance (FPRNSURLConnectionInstrument_5611d225f62417fa73742554b6a45401.o) ld: символы не найдены для архитектуры x86_64 clang: error: linker Сбой команды с кодом выхода 1 (используйте -v для просмотра вызова)

3). Удаление папки DerivedData - после этого я получаю те же ошибки.

4). Удаление и добавление платформы iOS - те же ошибки.

1 Ответ

0 голосов
/ 16 марта 2019

В моем случае эта проблема возникла при совместном использовании phonegap-plugin-push и cordova-plugin-firebase-analytics.Я нашел исправление в этом выпуске темы .

По сути, перейдите в Навигатор проектов в XCode, затем «Фазы сборки», разверните «Связать двоичные файлы с библиотеками», нажмите «+» иДобавьте «libGoogleToolboxForMac.a» и «libPodsYourProjectName.a» и повторите сборку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...