国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

詳解swift中xcworkspace多項目管理

2020-03-09 17:43:26
字體:
來源:轉載
供稿:網友

給大家詳細簡介了xcworkspace多項目管理的設置方法,一起來學習下。

技術說明:

今天在這里分享 swift下的 xcworkspace多項目管理(架構思想),能為我們在開發中帶來哪些便捷?能為我們對整個工程的維護,整理,模塊解偶帶來哪些優勢?以及在swift與OC下的混編開發中的調用會遇到哪些問題?

帶著問題探研:

(1).xcworkspace工程怎么創建?工程framework如何創建?主工程項目如何創建?

(2).主工程調用子工程framework如果配置?

(3).framework與framework之間如何調用?

(4).xcworkspace工程Pods的集成,framework的Pods第三的集成?

(5).Podfile文件的編輯,以及對應主工程,對應framework的編寫方式?

--------------歷史分析-----------------------

你還在搭建這樣的框架嗎?

swift,xcworkspace,多項目管理

缺點:

這種方式搭建的項目會隨著項目功能不斷的強大,從而會使模塊文件越來越龐大,也會使項目維護思維近近模糊,

業務層代碼與數據層代碼和項目核心層代碼相互交織,無法拆分,不符合一個中上等級以及長遠發展公司型的構架思想!

來看下大公司項目的搭建吧:

swift,xcworkspace,多項目管理

優點很明確,個個模塊可以拆分,架構思想清晰明朗,業務層獨立清晰沒有耦合

--------------xcworkspace項目創建--------------

File -> New -> Workspace

--------------子工程framework創建 (注意:新建主工程,不要創建成framework)

1 :File -> New -> Project -> framework (創建的是靜態庫)

swift,xcworkspace,多項目管理

 

2 :修改添加目標到workspace:(就是上一步創建的Workspace工程)

 swift,xcworkspace,多項目管理

 

--------------主工程調用子工程framework相關配置--------------

第一:子工程暴露文件出來:必須順序執行

BuildPhases -> Headers -> Public(只有放入共有欄,才能調用)->  導入項目代碼文件(一般默認放在Project中)

BuildPhases -> Headers -> Public ->  中導入需要暴露給的OC 的頭文件 (一般默認實現)

(注意:只有混編的時候才需要導入,也就是沒有混編,framework中的.h文件可以刪除)

BuildPhases -> Compile Sources ->  中導入項目代碼文件

第二:把需要提供外部調用的類,屬性和方法,加public修飾(swift) 

第三:  編譯(?+B)一下工程,生成framework(重要,配置如果改動,刪除對應生成的framework,重新編譯生成)

——————分別—真機編譯:

swift,xcworkspace,多項目管理

——————分別—模擬器編譯:

Show  In  Finder ,確認生成framework

swift,xcworkspace,多項目管理

 

第四:主項目導入framework

把生成的framework拖入主項目中(這樣做比較好),

———————不建議以下做法————————

//選擇主項目 ->  General ->  Embedded Binaries -> 選擇framework導入

(Embedded Binaries導入,會同步Linked Frameworks and Librares導入)

 第五:在需要調用framework   ipa 的文件中  import 相關framework的工程名,即頭文件,完成

------------------- framework之間相互調用 ipa --------------

General —>   Linked Frameworks and Libraries —> 導入指定framework

********到這里framework與主項目之間的調用已經完成,可以實現了!

--------------------Pods的集成------------------

第一:創建的主項目,創建的多靜態庫(注意必須在同一級目錄下)

swift,xcworkspace,多項目管理

 

第二:終端cd 項目跟目錄:

swift,xcworkspace,多項目管理

 

第三:終端指令:touch Podfile   (此處為空太),創建Podfile文件

第四:Podfile文件的編輯

案列:-------

 platform :ios, ‘8.0' ———可以寫在最上面,標示公用use_frameworks!  ———用cocoapods導入OC框架到swift項目必須寫workspace 'MyWorkspace.xcworkspace' //workspace文件名project 'MyApp2/MyApp2.xcodeproj' //主工程路徑„  target 'MyApp2' do  project 'MyApp2/MyApp2.xcodeproj' //工程路徑  pod 'Masonry', '~> 1.0.2'end  target 'MyApp1' do     project 'MyApp1/MyApp1.xcodeproj' //framework   pod 'SnapKit', '~> 1.0.2'   pod 'SDWebImage', '~> 1.0.2'end

 

第五:終端下載指令 pod install

第六:framework調用第三方框架

查看項目:未導入,項目無法調用

swift,xcworkspace,多項目管理

導入查看項目:項目同步

swift,xcworkspace,多項目管理

 

 注意:swift 版的framework調用OC寫的第3方,必須在.h 里面聲明頭文件,才能調用

swift,xcworkspace,多項目管理

 

----------------補充 : 靜態庫與動態庫的區別

 靜態庫有 .a 和 .framework

動態庫有.dylib 和 .framework

后來.dylib動態庫又被蘋果替換成.tbd的形式

靜態庫和動態庫是相對編譯期和運行期的:

1.靜態庫在程序編譯時會被鏈接到目標代碼中,程序運行時將不再需要改靜態庫

2.動態庫在程序編譯時并不會被鏈接到目標代碼中,只是在程序運行時才被載入,因為在程序運行期間還需要動態庫的存在

總結:

同一個靜態庫在不同程序中使用時,每一個程序中都得導入一次,打包時也被打包進去,形成一個程序。

而動態庫在不同程序中,打包時并沒有被打包進去,只在程序運行使用時,才鏈接載入(如系統的框架如UIKit、Foundation等),所以程序體積會小很多,但是蘋果不讓使用自己的動態庫,否則審核就無法通過。

 

注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临夏县| 运城市| 海门市| 玛曲县| 桐庐县| 高平市| 遂昌县| 天水市| 贡觉县| 二手房| 阿图什市| 武陟县| 夏邑县| 嵊泗县| 尼木县| 葫芦岛市| 孝昌县| 镇坪县| 盐源县| 遂宁市| 湘阴县| 古浪县| 浦城县| 宁阳县| 柳河县| 霍州市| 西安市| 新余市| 商洛市| 武义县| 绥宁县| 西乌珠穆沁旗| 方山县| 瑞丽市| 铜山县| 景德镇市| 木兰县| 屯门区| 龙门县| 泊头市| 犍为县|