美文网首页
iOS IJKPlayer打包Framework

iOS IJKPlayer打包Framework

作者: 0200a9609930 | 来源:发表于2019-04-18 10:54 被阅读0次

git地址

https://github.com/bilibili/ijkplayer.git

编译过程

因为IJKPlayer没有集成CocoaPods, 只能下载源码, 打包成framework

1. 下载源码, 进入iOS文件夹, 切换分支

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.8.8

2. 初始化init

./init-ios.sh

3. 编译ffmpeg

cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

编译会出现问题

2019-04-18_10-19-25.jpg

解决方案

修改 compile-ffmpeg.sh 删除脚本中的armv7

第24行 改为: FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"
第120行 改为: if [ "$FF_TARGET" = "armv7s" -o "$FF_TARGET" = "arm64" ]; then
第159行 改为: echo " compile-ffmpeg.sh arm64|i386|x86_64"

再重新执行

./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

4. 打包framework

4.1 打开 ios/IJKMediaPlayer/IJKMediaPlayer.xcodeproj
2019-04-18_10-36-05.jpg
4.2 打包真机 command+B 编译即可
会出现一个issue
Xnip2019-04-18_10-38-36.jpg

解决方案:


Xnip2019-04-18_10-39-31.jpg
Xnip2019-04-18_10-39-55.jpg

找到avconfig.h的路径, 其中../表示当前project的上一级


Xnip2019-04-18_10-44-04.jpg
注释这一行
Xnip2019-04-18_10-44-34.jpg
再重新编译

还会出现下面的错误, 按照上面的方法同样处理

/build/universal/include/libffmpeg/config.h:34:21: 'armv7/config.h' file not found
4.3 打包模拟器, 选择一个模拟器, command+B 编译即可

5. 合并framework

5.1 找到Products中的IJKMediaFramework
Xnip2019-04-18_10-47-43.jpg 2156697-92db850f1acd9973.png
5.2 合并
 打开终端, 先 cd 到 Products 目录下
 然后执行: lipo -create 真机framework路径 模拟器framework路径 -output 合并的文件路径

 lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework
5.3 将生成的 IJKMediaFramework 文件替换掉 真机framework 中的 IJKMediaFramework 文件.
2156697-2314656ff892980a.png

集成 framework 到项目中

 直接将 IJKMediaFramework.framework 拖入到工程中即可
 注意记得勾选 Copy items if needed 和 对应的 target

添加依赖库


Xnip2019-04-18_10-56-18.jpg

其中官方给的少了一个

linked c++

相关文章

网友评论

      本文标题:iOS IJKPlayer打包Framework

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