在我的项目中通过pod安装MobileVLCKit时显示链接器错误

时间:2017-11-30 06:39:33

标签: ios swift cocoapods vlc avs

在我的swift项目中通过pod安装MobileVLCKit时出现链接器错误。

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后建立项目的错误 在构建阶段 - >链接二进制文件 - >的libstdc ++。6.tbd

  2. 在上一步之后解决apple-linker错误 BuildSettings - >'EnableBitcode = No'

  3. 在Bridging-Header文件中,执行#import <MobileVLCKit/MobileVLCKit.h>

  4. 在'BuildSettings - &gt; other_linker_flags',这个MobileVLCKit框架没有显示,虽然我可以在'Pods'文件夹中看到'MobileVLCKit'文件夹

    编辑

    我能够删除此错误并通过执行以下步骤来找到“MobileVLCKit”:

    1. 在Build_Settings中 - &gt; Other_Linker_Flags,添加:-framework“MobileVLCKit”
    2. 在Build_Settings中 - &gt; Other_Linker_Flags,添加:-l“bz2”
    3. 在Build_Settings中 - &gt; Other_Linker_Flags,添加:-l“iconv”
    4. 然后这些修复程序从AVSLibrary框架中使用的其他框架“libavsobjc.stripped.a”中生成了其他链接器错误,该框架在app中用于其他目的。

      我希望Vlc和AVSLibrary都应该共存。有什么想法吗?

1 个答案:

答案 0 :(得分: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. 一般&gt;链接的框架和库通过单击+图标添加以下库 的libstdc ++。6.tbd
  7. 最重要的是通过包含以下行添加对Bridging-Header.h的引用 #import“MobileVLCKit / MobileVLCKit.h”
  8. 键入VLCMediaPlayerDelegate进行测试,查看该自动是否完成。如果有的话,请将他们指向这里帮助他人,否则回过头来看看你错过了什么。
  9. 希望有所帮助。 我能够通过下面给出的链接来解决这个问题。 资料来源:https://forum.videolan.org/viewtopic.php?f=32&t=137065