公司的項目需要把項目裏用到的Intel的webrtc套件進行更新,先下載來一個示例項目看一哈,
解壓完,一看這個目錄結構怎麼這麼怪,有Podfile 和.xcworkspace 但是卻沒有pods和podfile.lock文件,這有點坑。
於是把.xcworkspace文件先刪掉,然後進入項目目錄,運行pod install導入。
這次再一看目錄,這就順眼了呀。點擊.xcworkspace打開項目,打算研究一下改了哪些內容。
先添加自己的apple開發ID:
二話不說,先連上手機看一下效果,結果顯示這樣的錯誤:
沒有導入WebRTC包?這也可以?
於是在這個文件的頭寫下:
@import WebRTC;
關於@import是iOS 7之後的新特性語法,這種方式叫Modules(模塊導入) 或者 "semantic import(語義導入)" ,是一種更好的頭部預處理的執行方式,這iOS 7之後你能通過@import語法來導入任何的framework,Modules是一種將所有可執行的framework打包在一起,貌似這種方式比起傳統的#import更安全和更高效。
而且另外一個最大的改進就是使用@import之後,你不用在project settings那裏添加framework,系統會自動幫你加載上了,方便了很多,也避免了很多不必要的錯誤,例如忘記了加入framework而出現的 "Linker Error"。
使用Modules方式:
將 #import <MapKit/MapKit.h>
替換爲 @import MapKit;
即可
而且你也可以只加載framework裏面的submodules@import MapKit.MKAnnotation;
出現了多處這樣的錯誤提示,依次添加後錯誤提示消失。
接着出現了另一個錯誤: 提示AFNetworking未找到。
(有個奇怪的事情,當我解決了這個未找到的問題之後,爲了重現問題寫blog,我又重新解壓了一份,然後打算復現,結果直接可以運行了?我一開始懷疑是不是緩存搗的鬼,刪掉緩存,再次解壓一份新的項目,打算重現,又再次成功執行了...這...我只好先標記這個問題了。)
#import <AFNetworking/AFNetworking.h>
明明已經導入了呀,爲什麼會找不到呢?原來是Xcode Search Paths相關配置出的問題:
看了這篇文章,感覺講的挺好的,解決了我的問題。
https://www.jianshu.com/p/9f9c1fd2e8b5
解決了searchpaths問題後,AFNetworking的問題就解決了。
剩下的問題太過簡單就不提了..
順利build到真機上。