在Xcode 9下AVFoundation框架编译不过的问题解决

背景

前段时间苹果推出了Xcode 9正式版,兴冲冲地下载下来体验,感觉编辑器颜值升高了很多,整体运行也很稳定,但是很快发现一个问题,公司的库工程在Xcode 9下编译不过,到时候在Xcode 8.3.3下缺能编译通过,后来因为赶项目,没有过多的去看,前几天闲下来了,正式去搞这个编译不过的问题。

原因

废话不多说,过程也不描述。

其实很简单,错误就指向AVFoundation框架下面声明在AVMediaFormat.h下一个枚举:

typedef NSString* AVMediaType NS_EXTENSIBLE_STRING_ENUM;

然而,在FFmpeg 3.x版本下,avcodec头文件中也声明了一个枚举类型:

enum AVMediaType...

这就是导致这个编译错误的罪魁祸首。

解决办法

还能怎么办,AVFoundation改不了,就只能改FFmpeg的源码咯。

把FFmpeg的源码拖进编辑器,全局搜索AVMediaType,加个前缀就好。这里有个地方要注意,FFmpeg源码中有一个avfoundation.m的文件,里面的AVMediaType是引用AVFoundation框架下的AVMediaType枚举,是不能更改的,不然编译修改后FFmpeg源码就会报错。

最后,把原来工程里边的FFmpeg相关内容替换成重新编译好的FFmpeg静态库和头文件就OK了。


那么问题来了,为啥Xcode 8不会报错呢?...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 4,821评论 0 12
  • 行走在阳光下是什么感觉? 桐原亮司不知道。 他拥有一双无与伦比灵巧的手,只要拥有着纯净的心,任何美丽的图案,都能从...
    Homeeee阅读 690评论 2 1
  • 在我看来,写得一手好字,估计是大部分人所期盼的。作为师范生,写好板书是对师范生的基本要求。记得有一次课,陈老师叫我...
    逐梦人生阅读 475评论 0 2
  • “作为中国最努力的一群成年人,其实我们又是最没有文化的一群人,被应试折磨了一年,一年都没有好好看书了。该去读点...
    清欢三月阅读 153评论 0 0
  • 天太热,出门得变成烤鸭了,就在家画点小画吧。准备拿色铅笔,一抬头,看到上次6.18买的一本书《逆向管理》,封面上有...
    野兔丫阅读 395评论 4 11

友情链接更多精彩内容