iOS 打包静态库(以ijkplayer为例)

网上有很多静态库打包教程,不过最好自己动手一遍

准备工作

https://github.com/Bilibili/ijkplayer ,这个库目前star17K+

1.下载ffmpeg

打开终端, cd 到jkplayer-master文件夹,执行init-ios.sh脚本

cd 文件路径..../ijkplayer-master
./init-ios.sh

ps: .表示当前目录 ..表示当前的上一级目录
/ 表示的是目录级别的分隔符, /之前的就是目录名
./表示当前目录时/可以省略,但是日常为了避免混乱一般 b不省略:
./名称/ 表示当前目录下的一个子目录;
./名称 表示当前目录下的一个文件

iOS 打包静态库(以ijkplayer为例)_第1张图片

2.编译 ffmpeg :

进入ios 文件夹, 执行./compile-ffmpeg.sh clean和./compile-ffmpeg.sh all 命令,

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

iOS 打包静态库(以ijkplayer为例)_第2张图片
iOS 打包静态库(以ijkplayer为例)_第3张图片
image.png

三. 打包IJKMediaFramework.framework框架

1.打开工程IJKMediaPlayer.xcodeproj


iOS 打包静态库(以ijkplayer为例)_第4张图片

打开后,选择这个工程



工程打开后设置工程的 scheme


iOS 打包静态库(以ijkplayer为例)_第5张图片

3.设置好 scheme 后, 分别选择真机和模拟器进行编译



4.进入产品目录:



进入 Finder 后, 可以看到有真机和模拟器两个版本


iOS 打包静态库(以ijkplayer为例)_第6张图片

5.合并真机和模拟器版本的 framework


iOS 打包静态库(以ijkplayer为例)_第7张图片

iOS 打包静态库(以ijkplayer为例)_第8张图片

命令格式

lipo -create "真机版本路径/文件名" "模拟器版本路径/文件名" -output "合并后的文件路径/文件名"

例如
lipo -create 
/Users/yannchee/Library/Developer/Xcode/DerivedData/IJKMediaPlayer-cjmwsnhqlgsvhrcewpbdcossbwnb/Build/Products/Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework   /Users/yannchee/Library/Developer/Xcode/DerivedData/IJKMediaPlayer-cjmwsnhqlgsvhrcewpbdcossbwnb/Build/Products/Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework  
-output 
/Users/yannchee/Library/Developer/Xcode/DerivedData/IJKMediaPlayer-cjmwsnhqlgsvhrcewpbdcossbwnb/Build/Products/IJKMediaFramework
iOS 打包静态库(以ijkplayer为例)_第9张图片
  1. 把真机和模拟器合成版的文件,替换掉真机版文件, 把.framwork拷贝出来,即可使用了


    iOS 打包静态库(以ijkplayer为例)_第10张图片

    iOS 打包静态库(以ijkplayer为例)_第11张图片

    iOS 打包静态库(以ijkplayer为例)_第12张图片
    130多M

你可能感兴趣的:(iOS 打包静态库(以ijkplayer为例))