一、环境准备
brew -v (检查homebrew版本)
安装homebrew: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
卸载homebrew: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
homebrew安装软件,如:brew install oclint
homebrew卸载软件,如:brew uninstall oclint
homebrew搜索软件,如:brew search oclint
homebrew更新软件,如:brew upgrade oclint
homebrew安装列表:brew list
更新homebrew:brew update
git --version (检查git版本)
安装git:brew install git
yams --version (检查yams版本)
安装yams:brew install yams
pkg-config --version (检查pkg-config版本)
安装pkg-config:brew install pkg-config
二、使用git 克隆仓库到本地
1、git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
2、cd ijkplayer-ios (进入文件夹)
3、git checkout -B latest k0.8.8 (新建lastst分支)
三、下载编译FFmpeg
1、./init-ios.sh (这里等待时间较长,假如不需要支持https,只需要顺序执行1、3、6、8步骤)
2、./init-ios-openssl.sh (添加https支持,会生成支持https的静态文件 libcrypto.a 和 libssl.a,如果不需要可以跳过这一步)
3、cd ios (移动当前目录到ios文件夹下)
4、vim ../config/module.sh(预编译先,先vim一下module脚本)
5、export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"(添加预编译脚本内容为一下内容,然后点击 esc 退出 vim编译模式,执行 :wq 保存)
6、./compile-ffmpeg.sh clean
7、打开compile-openssl文件,commond + F 全局搜索删除armv7,然后执行 ./compile-openssl.sh all(这里等待时间较长,且可能出现执行超时或失败,重新执行命令即可)
8、打开compile-ffmpeg文件,commond + F 全局搜索删除armv7,然后执行./compile-ffmpeg.sh all (这里等待时间较长,且可能出现执行超时或失败,重新执行命令即可)
四、打包IJKMediaFramework
1、进入IJKMediaPlayer文件夹(目录:ijkpalyer-ios/ios/IJKMediaPlayer),选中IJKMediaPlayer.xcodeproj,右键显示包内容,双击打开project.pbxproj,全局搜索mainGroup,复制mainGroup的值替换掉下一行productRefGroup的值(这一步是为了在IJKMediaPalyer项目中显示Products文件夹)
2、用xcode打开IJKMediaPlayer项目
3、添加静态文件libcrypto.a 和 libssl.a (不需要支持https可跳过这一步,静态文件目录:ijkpalyer-ios/ios/build/universal)
4、选择iOS最低支持版本,我这里选择的是iOS11.0,一般情况下没特殊要求保持最新三个大版本即可,即:现在最新是iOS15,最低版本iOS12即可
5、选中要编译的项目为IJKMediaFramework,点击 Edit Scheme,将Build Configuration由Debug改为Release
6、commond + B 编译 (真机和模拟器都需要编译一次)
7、选择products文件下的IJKMediaFramework,右键show in finder
8、cd Release-iphonesimulator/IJKMediaFramework.framework,执行 lipo -remove IJKMediaFramework arm64 -output IJKMediaFramework (这一步是因为Xcode12模拟器支持arm64,合并framework会报错,lipo -info 命令可以查看当前framework支持的架构列表)
9、cd 到products目录
10、lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework(此时products目录下会生成IJKMediaFramework文件)
11、将生成的IJKMediaFramework文件替换Products/Release-iphoneos/IJKMediaFramework.framework 下的IJKMediaFramework文件,此时Products/Release-iphoneos 下的IJKMediaFramework.framework就是我们生成好的支持模拟器和真机的framework
五、Demo测试
1、新建项目
2、添加依赖库
IJKMediaFramework.framework
AudioToolbox.framework
AVFundation.framework
CoreGraphics.framework
CoreVideo.framework
MediaPlayer.framework
MobileCoreServices.framework
OpenGLES.framework
QuarzCore.framework
UIKit.framework
VidelToolbox.framework
libbz2.tbd
libz.tbd
libc++.tbd
3、简单demo使用代码
