一、環(huán)境準(zhǔn)備
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,只需要順序執(zhí)行1、3、6、8步驟)
2、./init-ios-openssl.sh?(添加https支持,會生成支持https的靜態(tài)文件 libcrypto.a 和 libssl.a,如果不需要可以跳過這一步)
3、cd ios?(移動當(dāng)前目錄到ios文件夾下)
4、vim ../config/module.sh(預(yù)編譯先,先vim一下module腳本)
5、export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"(添加預(yù)編譯腳本內(nèi)容為一下內(nèi)容,然后點擊 esc 退出 vim編譯模式,執(zhí)行 :wq 保存)
6、./compile-ffmpeg.sh clean
7、打開compile-openssl文件,commond + F 全局搜索刪除armv7,然后執(zhí)行?./compile-openssl.sh all(這里等待時間較長,且可能出現(xiàn)執(zhí)行超時或失敗,重新執(zhí)行命令即可)
8、打開compile-ffmpeg文件,commond + F 全局搜索刪除armv7,然后執(zhí)行./compile-ffmpeg.sh all?(這里等待時間較長,且可能出現(xiàn)執(zhí)行超時或失敗,重新執(zhí)行命令即可)
四、打包IJKMediaFramework
1、進入IJKMediaPlayer文件夾(目錄:ijkpalyer-ios/ios/IJKMediaPlayer),選中IJKMediaPlayer.xcodeproj,右鍵顯示包內(nèi)容,雙擊打開project.pbxproj,全局搜索mainGroup,復(fù)制mainGroup的值替換掉下一行productRefGroup的值(這一步是為了在IJKMediaPalyer項目中顯示Products文件夾)
2、用xcode打開IJKMediaPlayer項目
3、添加靜態(tài)文件libcrypto.a 和 libssl.a (不需要支持https可跳過這一步,靜態(tài)文件目錄:ijkpalyer-ios/ios/build/universal)
4、選擇iOS最低支持版本,我這里選擇的是iOS11.0,一般情況下沒特殊要求保持最新三個大版本即可,即:現(xiàn)在最新是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,執(zhí)行?lipo -remove IJKMediaFramework arm64 -output?IJKMediaFramework?(這一步是因為Xcode12模擬器支持arm64,合并framework會報錯,lipo -info 命令可以查看當(dāng)前framework支持的架構(gòu)列表)
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使用代碼
