iOS創(chuàng)建多工程并且相互引用

業(yè)務(wù)需求模擬

公司需要開(kāi)發(fā)一款學(xué)習(xí)類(lèi)的app,針對(duì)不同的用戶(hù)層級(jí)開(kāi)放兩個(gè)用戶(hù)端:學(xué)生端、老師端。

項(xiàng)目分析

方法一(普通版)
新建倆個(gè)項(xiàng)目,一個(gè)是學(xué)生app,老師app
在開(kāi)發(fā)的過(guò)程中,你會(huì)發(fā)現(xiàn)這倆個(gè)app有很多公共的模塊,比如登錄模塊,用戶(hù)中心模塊.........
當(dāng)你在學(xué)生端寫(xiě)完登錄模塊的時(shí)候,然后手動(dòng)拷貝登錄模塊的代碼到老師端,接著進(jìn)行開(kāi)發(fā)

-----來(lái)自菜鳥(niǎo)的闡述


方法二(改進(jìn)版)
新建倆個(gè)項(xiàng)目,一個(gè)是學(xué)生app,老師app
把公共的模塊組件化,在學(xué)生app,老師app分別我pod引用,省略了手動(dòng)拷貝的操作。當(dāng)公共組件更新的時(shí)候,分別在兩個(gè)app項(xiàng)目端進(jìn)行更新。

-----來(lái)自不那么菜的菜鳥(niǎo)的闡述


方法三(進(jìn)階版)
新建一個(gè)工作組workspace,在這個(gè)工作組上面新增學(xué)生project和老師project,兩個(gè)工程公用一個(gè)工作組。同時(shí)工作組pod公共組件,倆project公用一套公共模塊,這樣可以及時(shí)更新。

-----來(lái)自具有逼格的老鳥(niǎo)的闡述


項(xiàng)目啟動(dòng)

方法一就不多做介紹了,

方法二中提及的公共組件的封裝,歡迎去看我上一篇文章提到的公共組件封裝的文章,以下是連接:
公共組件的封裝

如果你已經(jīng)看完了方法二中提及的文章,下面開(kāi)始進(jìn)行方法三的具體操作了。

1.創(chuàng)建工作組workspace

本地創(chuàng)建一個(gè)“MyProject”的文件夾
接著打開(kāi)Xcode,F(xiàn)ile->New->Workspace

創(chuàng)建在“MyProject”的文件目錄下,保存。

image.png

打開(kāi)MyWorkspace工作組

image.png

打開(kāi)之后你會(huì)發(fā)現(xiàn)是一個(gè)空的工作臺(tái)


image.png

再接著讓我們來(lái)創(chuàng)建兩個(gè)用戶(hù)端吧。
File->New->Project

image.png

保存在myworkspace工作組下

image.png

此時(shí)你會(huì)發(fā)現(xiàn)工作臺(tái)下面有一個(gè)“StudentProject”的項(xiàng)目了


image.png

現(xiàn)在我們來(lái)看下項(xiàng)目結(jié)構(gòu)

image.png

再接著創(chuàng)建“TeacherProject”
步驟如上,保存路徑的時(shí)候 注意


image.png

創(chuàng)建之后 我們?cè)賮?lái)看看工作臺(tái)

image.png

大功告成
一個(gè)工作臺(tái)下面包含了兩個(gè)工程。

image.png

將自制公共組件和第三方SDK導(dǎo)入項(xiàng)目中,倆工程都能調(diào)用公共組件模塊和第三方SDK

首先打開(kāi)終端,cd到“MyProject”目錄下,創(chuàng)建Podfile文件


image.png

接著輸入

source 'https://github.com/jiangxiaobin1011/JSpecs.git'    //自制組件庫(kù)索引
source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '9.0'   
workspace 'MyWorkspace.xcworkspace'    //工作臺(tái)路徑
project 'StudentProject/StudentProject.xcodeproj'     //主工程路徑

def commonPods
     pod 'AFNetworking', '~> 3.1.0'        //共有第三方庫(kù)申明
end

target 'StudentProject' do
  project 'StudentProject/StudentProject.xcodeproj'
  pod 'Masonry', '~> 1.0.2'   
  commonPods             
  pod 'JCategoryKit'      //自制組件庫(kù)引用
end

target 'TeacherProject' do
  project 'TeacherProject/TeacherProject.xcodeproj'
  commonPods     
end

ps:拷貝的時(shí)候記得刪掉“//+提示內(nèi)容” ,不然pod識(shí)別不了

好了 接下來(lái)打開(kāi)myworkspace

image.png

想要引用pod里的文件,記得在工程 buildsetting的user headr里面添加“$(PODS_ROOT)”

image.png

進(jìn)階:

盡量讓兩個(gè)工程不要互相依賴(lài),互相解耦,這樣的話(huà) 其中任何一個(gè)項(xiàng)目都能作為一個(gè)獨(dú)立的項(xiàng)目隔離出來(lái)。也就是所謂的工程組件化。

關(guān)于工程組件化的思想 推薦大家去看這篇文章

工程組件化

完結(jié)撒花,此處應(yīng)該有掌聲??????

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

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

  • 接著上篇文章"Swift/Objective-C-使用Cocoapods創(chuàng)建/管理私有庫(kù)(初中級(jí)用法)"的探索之路...
    sky_storming閱讀 7,795評(píng)論 4 41
  • (?′`?)*??*儀式感。。。。。。。。。。。將要看的書(shū),完成的任務(wù)擺在桌上,或者寫(xiě)在紙上,嚴(yán)肅的心里或行動(dòng)來(lái)個(gè)...
    西瓜米閱讀 325評(píng)論 0 0
  • 劉鈷笩:黃金投資初學(xué)者的正確姿勢(shì) 1、控制情緒——投資者必須心平氣和,控制自己的情緒,對(duì)于市場(chǎng)突如其來(lái)的變化,必須...
    劉鈷笩閱讀 275評(píng)論 0 0
  • “如果說(shuō)你在見(jiàn)我之前還有六條命,那么,你現(xiàn)在只剩五條命了?!?“醫(yī)生,您這話(huà),幾個(gè)意思???” “家屬呢?” “您告...
    Vray成風(fēng)閱讀 267評(píng)論 0 4
  • 溫柔的人大多都是這樣誕生的,他們親身經(jīng)歷了許許多多的難過(guò)后,決定讓其他人不要再像自己這般難過(guò),這份血淋淋的體貼...
    YuShi_閱讀 800評(píng)論 13 4

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