Ошибка компоновщика при установке MobileVLCKit через модули в моем проекте

Ошибка компоновщика в моем быстром проекте по установке MobileVLCKit через pods.

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_VLCMediaPlayer", referenced from:
      objc-class-ref in StreamingController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я сделал следующие шаги

  1. Устранить ошибки при сборке проекта после установки пакета Vlckit In Build-Phases -> Link Binaries -> libstdC++.6.tbd

  2. Устранить ошибку Apple-компоновщика после предыдущего шага BuildSettings ->'EnableBitcode = No'

  3. В файле Bridging-Header выполните #import <MobileVLCKit/MobileVLCKit.h>

В 'BuildSettings -> other_linker_flags' также эта платформа MobileVLCKit не отображается, хотя я вижу папку 'MobileVLCKit' внутри папки 'Pods'


РЕДАКТИРОВАТЬ

Мне удалось устранить эту ошибку и найти "MobileVLCKit", выполнив следующие действия:

  1. В Build_Settings -> Other_Linker_Flags добавьте: -фреймворк "MobileVLCKit"
  2. В Build_Settings -> Other_Linker_Flags добавьте: -l"bz2"
  3. В Build_Settings -> Other_Linker_Flags добавьте: -l"iconv"

Но затем эти исправления породили другие ошибки компоновщика из другого фреймворка libavsobjc.stripped.a, используемого в фреймворке AVSLibrary, который используется в приложении для каких-то других целей.

Я хочу, чтобы Vlc и AVSLibrary должны сосуществовать. Есть идеи?

1 ответ

У меня была похожая проблема, и я приложил немало усилий, чтобы решить эту проблему.

  1. Создайте фиктивный проект Xcode, загрузите MobileVLCkit, используя какао-бобы.
  2. Скопируйте загруженный файл "MobileVLCKit.framework" из фиктивного проекта в корневую папку вашего проекта.
  3. Перейдите к настройкам целевой сборки вашего проекта и добавьте следующие строки в "Пути поиска заголовка" (также добавьте кавычки) "$(PROJECT_DIR)/MobileVLCKit.framework/Headers" "$(BUILT_PRODUCTS_DIR)"
  4. В настройках целевой сборки вашего проекта добавьте следующие строки в пути поиска каркаса (также добавьте кавычки) "$(SRCROOT)/MobileVLCKit.framework" "$(PROJECT_DIR)"
  5. в Другие флаги компоновщика добавьте следующие строки -l"bz2" -l"iconv" -framework "MobileVLCKit"
  6. В разделе "Общие"> "Связанные фреймворки и библиотеки" добавьте следующую библиотеку, щелкнув значок + libstdC++.6.tbd
  7. Наиболее важно добавить ссылку на Bridging-Header.h, включив следующую строку #import "MobileVLCKit/MobileVLCKit.h"
  8. Проверьте, набрав VLCMediaPlayerDelegate, посмотрите, завершится ли это автоматически. Если это так, помогите другим, указав их здесь, иначе проследите ваши шаги, чтобы увидеть, что вы пропустили.

Надеюсь, это поможет. Я смог решить эту проблему по приведенной ниже ссылке. Источник: https://forum.videolan.org/viewtopic.php?f=32&t=137065

Другие вопросы по тегам