to 技術:
新功能模組級別的 灰度發布.
線上版本回退老版本的能力.
支援多個版本並行開發.
to 業務方:
不同地區 執行不同版本的業務**.
某些地區先試點,時機成熟後 線上動態擴大/縮小試點範圍.
不同地區 不同市場策略 業務邏輯的實現.新舊版本a/b test.
預埋節假日模組,指定節假日不用發版 即可執行節假日模式.
第一階段:
將業務**拆分到pods中,不同版本的業務**打包成不同的pods.
接入服務端配置中心後,可以在服務端控制native使用者使用的業務版本.
第二階段:
將第一階段業務**拆分為不同的元件,僅對需要灰度的模組進行多版本的預埋.
手動配置指令碼化.
包內預埋多個版本的模組 包大小增加.
部分步驟目前需要手工配置xcode.
這裡我們封裝為.framework形式的動態庫.
封裝過程
編譯時如果遇到找不到標頭檔案,請檢查wxpay.framework中的module.modulemap 是否包含下圖中的標頭檔案.
或者 在 module.modulemap中指定的umbrella header檔案wxpay.h中 引入需要暴漏的標頭檔案 如下圖. 也比較推薦這種方式.
比如amap3dmap.framework amapfoundation.framework中沒有包含module.modulemap的三方framework,
編譯時找不到標頭檔案,需要手工/指令碼新增 module.modulemap.
我們這裡可採用在 podfile中新增指令碼的方式 具體見下圖:
由於之前swfit工程通過header bridge標頭檔案去找引入oc**的標頭檔案.改造後引入的庫封裝到pods中 以framework的形式引入工程,
在新增module.modulemap後無需通過header bridge標頭檔案的方式引入標頭檔案.
所以可以在主工程刪除header bridge標頭檔案.
在 build settings > framework search path 中新增 vender framework的路徑
當預置兩個版本業務**pods後,會出現pods安裝不成功.
分析一下 專案結構時 主工程 包含 pods a & pods b.
pods a & pods b包含了同樣的vendor framework.
此時我們可以把pods b中vendor framework中的庫刪掉.
然後在pods b的target > build settings > framework search paths中指向pods a的vendor framework.
達到 主工程 包含 pods a & pods b. pods a & pods b沒有引入兩份相同的vendor framework,而是共用乙份vendor framework.
元件化-動態庫實戰
讓cocoapods static library支援module
xcode 建立.a和framework靜態庫
iOS程式模組化設計
一 模組化設計的概述 模組化設計 block based design 對一定範圍內的不同功能或相同功能的不同效能 不同規格的產品進行功能分析的基礎上,劃分並設計出一系列功能模組,通過模組的選擇和組合構成不同的定製產品,以滿足市場的不同需求。模組化設計是綠色設計方法之一,綠色設計是指 在產品整個生命...
什麼是模組化?模組化的好處
1.高內聚低耦合,有利於團隊作戰,當專案很複雜的時候,將專案劃分為子模組分給不同的人開發,最後再組合在一起,這樣可以降低模組與模組之間的依賴關係體現低耦合,模組又有特定功能體現高內聚。2.可重用,方便維護,模組的特點就是有特定功能,當兩個專案都需要某種功能的時候,我們定義乙個特定的模組來實現該功能,...
什麼是模組化?模組化怎麼實現?
前言 增加印象,留下腳印 忘記還可以翻一翻 奧利給。1,什麼是模組化 公司裡乙個專案是有很多程式設計師一起開發的,例如 多人運動 這個專案 有程式設計師a 程式設計師b 程式設計師c 程式設計師a 寫了 aaa.js 裡面有幾千行 幾萬行 程式設計師b 寫了 bbb.js 裡面有幾千行 幾萬行 程式...