美文网首页
打包合并iOS的ijkplayer静态库

打包合并iOS的ijkplayer静态库

作者: 红茶绅士 | 来源:发表于2017-07-08 18:01 被阅读259次

    ijkplayer介绍

    B站开源的视频播放框架,基于ffmpeg,支持Android和iOS
    github链接

    编译生成静态库

    • Build iOS(按照ijkplayer文档执行)
    git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
    cd ijkplayer-ios
    git checkout -B latest k0.8.0
    ./init-ios.sh
    cd ios
    ./compile-ffmpeg.sh clean
    ./compile-ffmpeg.sh all
    
    • 创建一个新项目,并将ijkplayer-ios/ios/IJKMediaPlayer目录下的IJKMediaPlayer.xcodeproj拉进项目中.

    • 选择TargetIJKMediaFramework,然后点击Edit Scheme按钮

      Edit.png
    • 设置Run -> info -> Build Configuration 的值为Release

      Release.png
    • 分别选择模拟器真机,进行一次Bunild.在Products文件夹下就可以看到生成的.framework

    • 右击IJKMediaFramework.framework,选择Show in Finder,可以找到适用于模拟器真机的两个静态库
      Products.png
    • lipo -info查看信息
    cd Release-iphonesimulator/IJKMediaFramework.framework
    lipo -info IJKMediaFramework
    //输出Architectures in the fat file: IJKMediaFramework are: i386 x86_64
    cd Release-iphoneos/IJKMediaFramework.framework
    lipo -info IJKMediaFramework
    //输出Architectures in the fat file: IJKMediaFramework are: armv7 arm64 
    
    • 最后在Product目录下执行合并的命令,你就可以得到一个即支持模拟器又支持真机的静态库了
    lipo -create Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework
    
    • 将生成的IJKMediaFramework文件,复制到Release-iphoneos/IJKMediaFramework.framework目录下,替换掉原来的IJKMediaFramework.
    • 至此完整的IJKMediaFramework.framework已经生成,可以直接放到项目中使用了.

    注意事项

    ijkplayer的文档中列出了一些可能需要添加的依赖库 (Maybe something else, if you get any link error)

    • AudioToolbox.framework
    • AVFoundation.framework
    • CoreGraphics.framework
    • CoreMedia.framework
    • CoreVideo.framework
    • libbz2.tbd
    • libz.tbd
    • MediaPlayer.framework
    • MobileCoreServices.framework
    • OpenGLES.framework
    • QuartzCore.framework
    • UIKit.framework
    • VideoToolbox.framework

    我遇到的问题

    Undefined symbols for architecture x86_64:
    Undefined symbols for architecture x86_64.png
    解决方法:添加libstdc++.tbd

    相关文章

      网友评论

          本文标题:打包合并iOS的ijkplayer静态库

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