编译iOS&macOS平台下的VLC framework

2018-12-09  本文已影响31人  Ezward_Chou

最近因为项目需要,编译了两个平台下的VLC framework。经过一番探索,终于找到了正确的编译步骤。

前期准备工作

你需要准备以下内容:

  1. 22G以上的硬盘空间。
  2. VPN。
  3. 足够长的空闲时间。

开始编译

1. Git VLCKit

在终端中键入
git clone https://code.videolan.org/videolan/VLCKit.git
首先将VLCKit的原始文件git下来,这个过程不需要开VPN,同时文件很小,所以耗时很少。

提示done就说明git完成。


QQ20181209-161950.png

2. 编译iOS平台的VLC framework

进入git下来的VLCKit文件夹中,可以看到一个名为compileAndBuildVLCKit.sh的文件。这个文件是帮助我们编译framework的脚本文件,打开后就往下拉, 在大概40行左右就可以看到OPTIONS。

   -k       Specify which sdk to use (see 'xcodebuild -showsdks', current: ${SDK})
   -v       Be more verbose
   -s       Build for simulator
   -f       Build framework for device and simulator
   -d       Enable Debug
   -n       Skip script steps requiring network interaction
   -l       Skip libvlc compilation
   -t       Build for tvOS
   -x       Build for macOS / Mac OS X
   -w       Build a limited stack of non-scary libraries only
   -y       Build universal static libraries
   -b       Enable bitcode
   -a       Build framework for specific arch (all|i386|x86_64|armv7|armv7s|aarch64)
   -e       External VLC source path

在每一项的后面都给出了操作的用处,这里我们需要关注两项。如果你需要编译iOS平台下的framework,那么你需要使用-f参数。如果你需要编译macOS平台下的framework,则你需要使用-x参数。tvOS平台同理。

打开终端,进入到VLCKit目录下,开启VPN后执行以下命令:

sh compileAndBuildVLCKit.sh -f

这个过程将会耗时2h甚至更多,最终会产生15G+的文件。我的mac比较老,因此耗时很长。

说明:
这个过程和以前老的VLCKit的编译过程有差异,原来在VLCKit文件夹下有两个.sh文件。一个用于编译iOS平台,另一个用于编译macOS平台。我发现使用老的VLCKit文件在macOS Mojave & Xcode 10下怎样都编译不过,因此使用了新的VLCKit文件。
原来编译iOS平台下的过程分为3步:

  1. 编译源文件。
  2. 编译模拟器环境下的framework。-s
  3. 编译真机环境下的framework。-f

因此整个库完整的编译成功需要执行3次脚本命令,而现在合成了一步,但时间上好像更长了。

经过超长的等待后,终端中显示completed,则说明你编译成功。编译成功的framework在/VLCKit/build目录下,名字叫MobileVLCKit.framework,文件大小大概在600M+。
至此iOS平台下的编译工作就全部完成。

3. 编译macOS平台下的VLC framework

建议重新git一份VLCKit文件来专门编译macOS版本的framework

编译macOS平台与iOS相仿,差别在于命令参数的区别。在这里你需要输入:

sh compileAndBuildVLCKit.sh -x

保持VPN畅通的情况下,等待大约1h左右,最终会产生5G+的文件。
经过漫长的等待后,终端中同样也会显示completed,说明你编译成功。编译成功的framework在/VLCkit/build/Release下,文件大小大概在300M+。
至此macOS平台下的编译工作就全部完成。

其他说明

·二次编译

如果你不慎遗失了framework,而整个VLCKit的文件都还在,你想重新编译MobileVLCKit.framework & VLCKit.framework。则你需要对.sh进行如下修改。
打开compileAndBuildVLCKit.sh文件,在其中搜索git并注释掉这一段:

compileAndBuildVLCKit.sh
之后重新运行脚本就不会进行libvlc的拉取过程,编译时间会缩短很多。

·自定义VLC framework

如果你需要对VLC framework内部做一些自己的改动,加自己的函数,并公开到外部使用。编译也是同样的步骤,不过可能会碰壁。如果有需要可以留言帮你解决。

上一篇 下一篇

猜你喜欢

热点阅读