美文网首页iOS开发技术
xcode集成ijkplayer k0.8.8版本遇到的问题

xcode集成ijkplayer k0.8.8版本遇到的问题

作者: ef43ffb32440 | 来源:发表于2018-04-08 19:55 被阅读11次

    环境:XCode9

    打开Mac的terminal执行以下脚本命令拉取ijkplayer源码和编译依赖库ffmpeg:

    git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
    cd ijkplayer-ios
    git checkout -B latest k0.8.8
    
    ./init-ios.sh
    
    cd ios
    ./compile-ffmpeg.sh clean
    ./compile-ffmpeg.sh all
    

    我拉取了当前最新的版本k0.8.8,具体的集成请参考:《带你走进脚本世界,ijkplayer之【init-ios.sh】脚本分析》和《【如何快速的开发一个完整的iOS直播app】(播放篇)》。

    如图,打开IJKMediaDemo项目:


    image.png

    直接运行项目,发现编译失败:


    image.png

    错误提示:

    ld: library not found for -lcrypto
    

    xCode在编译工程时,遇到类似的ld: library not found for -l...的错误提示,原因:
    通常这是由于工程在编译时找不到需要的链接库而导致的。

    而这里具体是缺少crypto的库,这是openssl的东西,初步假设是ijkplayer k0.8.8版本强制依赖openssl库以支持播放https加密视频。

    为了进一步验证假设,重复上面的命令,拉取ijkplayer k0.6.1版本的源码及依赖库ffmpeg:

    git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
    cd ijkplayer-ios
    git checkout -B latest k0.6.1
    
    ./init-ios.sh
    
    cd ios
    ./compile-ffmpeg.sh clean
    ./compile-ffmpeg.sh all
    

    用xCode打开IJKMediaDemo项目,直接运行,可以编译成功并成功运行。所以上面缺少openssl库的问题确实只是ijkplayer k0.8.8版本才有的问题。

    如图,在ijkplayer-ios根目录下有一个init-ios-openssl.sh脚本,在ijkplayer-ios/ios目录下有一个compile-openssl.sh脚本:

    • init-ios-openssl.sh脚本:拉取openssl源码
    • compile-openssl.sh脚本:编译openssl源码
    image.png

    执行命令拉取openssl源码和编译openssl:

    $ cd ..    进入到ijkplayer的目下
    $ ./init-ios-openssl.sh   去远程仓库拉取openssl的远程代码
    
    $ cd ios
    $ ./compile-openssl.sh clean
    $ ./compile-openssl.sh all
    

    编译成功后,发现ijkplayer-ios/ios/目录下多了如图红圈中的5个文件夹:

    image.png

    build目录下:

    image.png

    build/universal/lib目录下找到libcrypto.alibssl.a文件,这就是前面编译失败缺失的链接库。要想xcode编译工程时找到这个链接库,就需要对工程进行相应的配置。

    image.png

    xCode选中当前项目target->Build Settings->Library Search Paths, 现在先只在Debug环境添加一条路径,将libcrypto.a文件所在目录的路径添加进来。

    image.png

    重新运行项目,编译成功,成功运行!

    参考:
    在xcode下用openssl写dh密钥交换,遇到“ld: library not found for -lcrypto”问题(已解决)
    ijkplayer库的编译带OPENSSL

    相关文章

      网友评论

        本文标题:xcode集成ijkplayer k0.8.8版本遇到的问题

        本文链接:https://www.haomeiwen.com/subject/vmymhftx.html