iOS多工程聯(lián)編最新詳解版(2018-4-19)及framework之間的相互調(diào)用

很久之前就要寫來著,但是由于種種原因沒有寫了,最近在搭一個(gè)項(xiàng)目的框架,我用的多工程聯(lián)編的方式,所以趁機(jī)有時(shí)間寫一下.給大家參考一下,如果有寫的不好的地方見諒.

展示一下效果

最終效果截圖

(一)創(chuàng)建方式

  第一步肯定是要?jiǎng)?chuàng)建工程的但是創(chuàng)建的工程有兩種方式
  (1)直接創(chuàng)建最原始的不使用pods
  (2)使用pods
  我這里使用的是不用pods的(影響應(yīng)該不大,有興趣的可以看完后自己測一下)

(二)開始創(chuàng)建工程

(1)創(chuàng)建一個(gè)普通的工程

屏幕快照 2018-04-19 下午1.48.48.png
屏幕快照 2018-04-19 下午1.49.26.png
1.png

(2)創(chuàng)建兩個(gè)framework并且各定義一個(gè)打印的方法(這里只展示了創(chuàng)建方法自己按照這個(gè)方法創(chuàng)建兩個(gè)就可以了)

屏幕快照 2018-04-19 下午1.50.21.png
屏幕快照 2018-04-19 下午1.50.45.png

2.png
3.png

(3)將工程添加進(jìn)主工程

屏幕快照 2018-04-19 下午2.01.05.png

屏幕快照 2018-04-19 下午2.01.31.png

添加進(jìn)去后的效果.png

(4)重點(diǎn)從現(xiàn)在開始開始關(guān)聯(lián)工程

1.現(xiàn)在我們要做的是主工程調(diào)用framework
首先我們先配置相關(guān)的配置
添加framework到主工程.png
將兩個(gè)framework添加到主工程.png

設(shè)置子工程的配置

將庫的類型設(shè)為靜態(tài)庫.png

將庫的類型設(shè)為靜態(tài)庫.png
將需要外界訪問的.h的文件放到public中.png

設(shè)置主工程

設(shè)置庫的路徑否則訪問不到的.png
.設(shè)置庫的路徑否則訪問不到的png
頭文件的路徑也需要設(shè)置.png
好了在主工程中寫代碼就可以調(diào)用了.png

一個(gè)庫調(diào)用另外的一個(gè)庫(這個(gè)時(shí)候可以發(fā)現(xiàn)報(bào)黃了別急下面就干掉他)

一個(gè)庫調(diào)用另外的庫的文件也可以了.png
設(shè)置需要調(diào)用的庫的路徑.png
設(shè)置需要調(diào)用的庫頭文件的路徑.png

解決!!!

接下來說一下注意事項(xiàng)
1.有時(shí)候我們編譯的時(shí)候會報(bào)duplicate symbols for architecture x86_64這個(gè)錯(cuò)了解解決方案
2.或者說這個(gè)錯(cuò)Can't map file, errno=22 file 'xxx' for architecture arm64(armv7)了解解決方案
3.如果加入-ObjC報(bào)錯(cuò)的也可以看第二種方案了解解決方案

  1. 如果靜態(tài)庫中有category類,則在使用靜態(tài)庫的項(xiàng)目配置中Other Linker Flags需要添加參數(shù)-ObjC或者-all_load(這個(gè)-all_load慎用)。(這個(gè)時(shí)候可能會報(bào)錯(cuò)請點(diǎn)擊這里了解解決方案,可能原因庫中的文件有重名的)

5.如果創(chuàng)建的framework類中使用了.tbd,則需要在實(shí)際項(xiàng)目中導(dǎo)入.tbd動態(tài)庫
6.我們生成的動態(tài)庫有時(shí)候真機(jī)和模擬器不能共用,如果不嫌麻煩可以使用的時(shí)候來回切換路徑,否則的話請點(diǎn)擊這里framework的創(chuàng)建及合并

好了這就是一個(gè)完整的工程了,喜歡點(diǎn)個(gè)贊!有問題可以留言,如果有寫的不好的地方歡迎各位指正!該文檔會隨著項(xiàng)目的進(jìn)度隨時(shí)更新!

,

2018.7.13更新pods工程創(chuàng)建多工程

1.首先創(chuàng)建一個(gè)pods工程

2.按以上步驟完成繼承frameWork工作

3.在需要引用pods工程中文件的framework中設(shè)置相關(guān)路徑,如下圖接下來就可以使用了

屏幕快照 2018-07-13 上午11.36.07.png
屏幕快照 2018-07-13 上午11.39.18.png
屏幕快照 2018-07-13 上午11.39.30.png
屏幕快照 2018-07-13 上午11.39.39.png

OK了如果還有什么問題歡迎隨時(shí)留言!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容