Worksapce管理多個(gè)project,并共用cocopods遇到問題記錄

之前有同事寫好一個(gè)A項(xiàng)目,由于沒有集成SDK,并且還在版本迭代中,我的B項(xiàng)目需要使用。A項(xiàng)目中有很多pods使用的第三方,B項(xiàng)目也要使用。

最終決定的方案是把A項(xiàng)目集成framework,B項(xiàng)目使用A.framework,TargetA,TargetB共用podfile.

第一步:創(chuàng)建workspace,A.framework,項(xiàng)目B,A和B都放在workspace中。

第二步:創(chuàng)建podfile。

遇到報(bào)錯(cuò)Unable to find a target named `A`等。

最終解決方案:podfile的結(jié)構(gòu)如下

1.加上workspace '[name].xcworkspace'

2.target 之后要注明project

target'A'do

? ? project'A/A.xcodeproj'

? ?end

? ??target'B'do

? ? project'B/B.xcodeproj'

? ?end

3.共用的第三方可以 def 一下,再使用。

第三步:由于A.framework的代碼是swift和OC混編。直接把橋接文件放進(jìn)來,會(huì)報(bào)錯(cuò)"using bridging headers with framework targets is unsupported"。A.framework中不支持橋接文件,所以要放在A.h中。

遇到的報(bào)錯(cuò)“Include of non-modular header inside framework module 'A'

?對于A中的OC的頭文件的引用,會(huì)報(bào)此錯(cuò)。解決方案是:

找到要導(dǎo)入的OC的.h,show inspectors,將Target MemberShip改成public。

或者Target->Build Phases->Headers在Projects中找到要導(dǎo)入的.h,拖到Public中即可。

而對于A中要引用pods中的.framework或者.a的頭文件時(shí),也會(huì)報(bào)此錯(cuò)。解決方案是:

Target->Build Phases->Headers 按+按鈕,“Add Other”找到Pods中要導(dǎo)入的.framework或者.a的頭文件,不要勾選copy,放到public欄目中即可。

暫時(shí)已經(jīng)沒有報(bào)錯(cuò)了。

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

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

  • 項(xiàng)目組件化、平臺(tái)化是技術(shù)公司的共同目標(biāo),越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 22,876評論 0 39
  • Ruby 安裝 要安裝cocospods 首先需要安裝ruby,可以先安裝xcode,再安裝macport ,最后...
    山天大畜閱讀 2,136評論 0 1
  • 起因 理論功底 動(dòng)態(tài)庫和靜態(tài)庫 介紹 靜態(tài)庫和動(dòng)態(tài)庫的區(qū)別 舉個(gè)例子, iOS 項(xiàng)目中使用 Embeded Fra...
    leverkusen188閱讀 1,098評論 0 3
  • 靜態(tài)庫與動(dòng)態(tài)庫的區(qū)別 首先來看什么是庫,庫(Library)說白了就是一段編譯好的二進(jìn)制代碼,加上頭文件就可以供別...
    吃瓜群眾呀閱讀 12,340評論 3 42
  • 一周新聞 1otcbtc交易所開張,10月26日正式上線,可以綁定國內(nèi)銀行卡,也不用翻墻,用起來很方便,這說明國人...
    蒙面加菲貓閱讀 219評論 0 0

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