一、建立Workspace
建立Workspace,作為最外層的包裹體來管理工程。
建立Workspace
将建立好的Workspace放到建立好的檔案裡面
儲存Workspace
二、建立MainProject
建立MainProject作為主工程,可在此基礎上開發APP的主要功能(TabBar,Naviga等)
建立Project
選擇APP
建立工程名
存儲位置
這一步要注意兩點:
1、注意建立的Project要選擇APP子產品
2、要放到對應的Workspace裡面(最後一張圖紅色框的地方)
到這裡其實一個正常的工程是建立完成了,可以在裡面正常寫項目之類的了。接下來的其實就是對原本在MainProject裡面的子產品進行抽離。
1、如果想把項目中的一個Person子產品分離開來,可以跟上一步一樣使用File => New => Project =>
APP,這樣就可以新分離一個Person子產品給其他同僚開發,這樣既不會互相幹擾,而且運作的時候隻要運作自己的Targets就行了(怎麼把MainProject和Person子產品銜接起來,後面再說)。如果是獨立開發或者項目不大,可以直接在MainProject開發,省掉這一步
2、如果是網絡請求之類的共同功能可以使用framework子產品
三、Framework建立
這個跟上面的MainProject建立相似,隻不過後面的APP換成Framework選項
建立framework
存儲位置
這裡同樣要注意存儲位置,是在Workspace裡面的
結構圖
這個是加完了NetworkManager(framework),MainProject,Person之後的結構圖。本來NetworkManager裡面有個.h檔案的,由于我是swift開發,是以把它删了,新增了個NetworkManager.swift
接下來把MainProject、Person一起跟NetworkManager進行連結
四、連結framework
添加framework
選擇你需要連結的Target,Build Phase => Link Binary With Libraries => + =>
你的framework(NetworkManager)
添加路徑
選擇你需要連結的Target,Build Settings => 搜尋header search =>
輸入$(SRCROOT)/../NetworkManager
code
在對應的檔案導入NetworkManager就可以用了,這裡的lg()是我在NetworkManger.swift實作的func,這裡記得要給NetworkManager這個Class設定Public屬性,func也是要Public。
五、Pod管理設定
關于Pod管理我就直接發代碼了,多工程管理的Pod庫是哪個工程需要哪個第三方,就導入那個Pod。要注意的是,如果是在Framework中導入Pod的話,是所有引用這個Framework的Project都可以用,是以要避免重複調用。
use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
workspace 'MVVMAndRAC_Swift.xcworkspace'
target :'MainProject' do
platform :ios,'10.0'
project 'MainProject/MainProject.xcodeproj'
pod'SnapKit', '~> 4.0.1'
end
target'Person'do
platform :ios,'10.0'
project 'Person/Person.xcodeproj'
pod 'Kingfisher', '~> 5.2.0'
end
target 'NetworkManager' do
platform :ios,'10.0'
project'NetworkManager/NetworkManager.xcodeproj'
pod'Moya/RxSwift', '~> 14.0'
然後pod install就可以了