在Xcode 9下AVFoundation框架編譯不過的問題解決

背景

前段時間蘋果推出了Xcode 9正式版,興沖沖地下載下來體驗,感覺編輯器顏值升高了很多,整體運行也很穩(wěn)定,但是很快發(fā)現(xiàn)一個問題,公司的庫工程在Xcode 9下編譯不過,到時候在Xcode 8.3.3下缺能編譯通過,后來因為趕項目,沒有過多的去看,前幾天閑下來了,正式去搞這個編譯不過的問題。

原因

廢話不多說,過程也不描述。

其實很簡單,錯誤就指向AVFoundation框架下面聲明在AVMediaFormat.h下一個枚舉:

typedef NSString* AVMediaType NS_EXTENSIBLE_STRING_ENUM;

然而,在FFmpeg 3.x版本下,avcodec頭文件中也聲明了一個枚舉類型:

enum AVMediaType...

這就是導(dǎo)致這個編譯錯誤的罪魁禍?zhǔn)住?/p>

解決辦法

還能怎么辦,AVFoundation改不了,就只能改FFmpeg的源碼咯。

把FFmpeg的源碼拖進編輯器,全局搜索AVMediaType,加個前綴就好。這里有個地方要注意,F(xiàn)Fmpeg源碼中有一個avfoundation.m的文件,里面的AVMediaType是引用AVFoundation框架下的AVMediaType枚舉,是不能更改的,不然編譯修改后FFmpeg源碼就會報錯。

最后,把原來工程里邊的FFmpeg相關(guān)內(nèi)容替換成重新編譯好的FFmpeg靜態(tài)庫和頭文件就OK了。


那么問題來了,為啥Xcode 8不會報錯呢?...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 因為要結(jié)局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細...
    uniapp閱讀 4,467評論 0 12
  • 行走在陽光下是什么感覺? 桐原亮司不知道。 他擁有一雙無與倫比靈巧的手,只要擁有著純凈的心,任何美麗的圖案,都能從...
    Homeeee閱讀 654評論 2 1
  • 在我看來,寫得一手好字,估計是大部分人所期盼的。作為師范生,寫好板書是對師范生的基本要求。記得有一次課,陳老師叫我...
    逐夢人生閱讀 435評論 0 2
  • “作為中國最努力的一群成年人,其實我們又是最沒有文化的一群人,被應(yīng)試折磨了一年,一年都沒有好好看書了。該去讀點...
    清歡三月閱讀 135評論 0 0
  • 天太熱,出門得變成烤鴨了,就在家畫點小畫吧。準(zhǔn)備拿色鉛筆,一抬頭,看到上次6.18買的一本書《逆向管理》,封面上有...
    野兔丫閱讀 379評論 4 11