Ошибка компоновщика при установке 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)
Я сделал следующие шаги
Устранить ошибки при сборке проекта после установки пакета Vlckit In Build-Phases -> Link Binaries -> libstdC++.6.tbd
Устранить ошибку Apple-компоновщика после предыдущего шага BuildSettings ->'EnableBitcode = No'
В файле Bridging-Header выполните
#import <MobileVLCKit/MobileVLCKit.h>
В 'BuildSettings -> other_linker_flags' также эта платформа MobileVLCKit не отображается, хотя я вижу папку 'MobileVLCKit' внутри папки 'Pods'
РЕДАКТИРОВАТЬ
Мне удалось устранить эту ошибку и найти "MobileVLCKit", выполнив следующие действия:
- В Build_Settings -> Other_Linker_Flags добавьте: -фреймворк "MobileVLCKit"
- В Build_Settings -> Other_Linker_Flags добавьте: -l"bz2"
- В Build_Settings -> Other_Linker_Flags добавьте: -l"iconv"
Но затем эти исправления породили другие ошибки компоновщика из другого фреймворка libavsobjc.stripped.a, используемого в фреймворке AVSLibrary, который используется в приложении для каких-то других целей.
Я хочу, чтобы Vlc и AVSLibrary должны сосуществовать. Есть идеи?
1 ответ
У меня была похожая проблема, и я приложил немало усилий, чтобы решить эту проблему.
- Создайте фиктивный проект Xcode, загрузите MobileVLCkit, используя какао-бобы.
- Скопируйте загруженный файл "MobileVLCKit.framework" из фиктивного проекта в корневую папку вашего проекта.
- Перейдите к настройкам целевой сборки вашего проекта и добавьте следующие строки в "Пути поиска заголовка" (также добавьте кавычки) "$(PROJECT_DIR)/MobileVLCKit.framework/Headers" "$(BUILT_PRODUCTS_DIR)"
- В настройках целевой сборки вашего проекта добавьте следующие строки в пути поиска каркаса (также добавьте кавычки) "$(SRCROOT)/MobileVLCKit.framework" "$(PROJECT_DIR)"
- в Другие флаги компоновщика добавьте следующие строки -l"bz2" -l"iconv" -framework "MobileVLCKit"
- В разделе "Общие"> "Связанные фреймворки и библиотеки" добавьте следующую библиотеку, щелкнув значок + libstdC++.6.tbd
- Наиболее важно добавить ссылку на Bridging-Header.h, включив следующую строку #import "MobileVLCKit/MobileVLCKit.h"
- Проверьте, набрав VLCMediaPlayerDelegate, посмотрите, завершится ли это автоматически. Если это так, помогите другим, указав их здесь, иначе проследите ваши шаги, чтобы увидеть, что вы пропустили.
Надеюсь, это поможет. Я смог решить эту проблему по приведенной ниже ссылке. Источник: https://forum.videolan.org/viewtopic.php?f=32&t=137065