多Target、元件化實踐
前言
因為公司專案的特性:每個城市對應一個APP,每個APP又有著或多或少的區別;
所以開發人員面臨的問題是:開發多個相似APP。
解決方案
先說一下之前的解決方案:
將所有APP整合為一個大的專案,通過修改配置檔案,呼叫不同APP所需程式碼。
這樣確實是解決了問題,但是方案肯定是不好的。
這樣做的缺點:
- 任何一個APP都需要載入所有APP的檔案,資源
- 每次檢視不同城市的APP都需要修改配置檔案,同時還要修改伺服器地址,很容易發生遺漏
- 所有APP的icon,名稱無法單獨設定
下面是本文的解決方案:
-
通過Target管理不同城市的APP
-
通過cocoapods私有庫將專案元件化
大家可使用cocoapods私有庫製作指令碼進行私有庫製作。更多cocoapods私有庫製作請點選。
不同的Target匯入不同的cocoapods私有倉庫
project 'SXC.xcodeproj'
platform :ios, '8.0'
use_frameworks!
pod 'QCRouter', :path => '../QCRouter'
target 'SXC_GX' do
# Pods for SXC-GX
pod 'SSQ/GX', :path => '../SSQ'
end
target 'SXC_HLJ' do
# Pods for SXC-HLJ
pod 'SSQ/HLJ', :path => '../SSQ'
end
target 'SXC_NX' do
# Pods for SXC-NX
pod 'SSQ/NX', :path => '../SSQ'
end
target 'SXC_TJ' do
# Pods for SXC-TJ
pod 'SSQ/TJ', :path => '../SSQ'
end
target 'SXC_ZJ' do
# Pods for SXC-ZJ
pod 'SSQ/ZJ', :path => '../SSQ'
end
注意事項
-
多Target使用預定義巨集問題
由於本專案為Swift專案,所以如下使用預定義巨集
#if SXC_TJ let scheme = "sxc-tj" #elseif SXC_NX let scheme = "sxc-nx" #elseif SXC_GX let scheme = "sxc-gx" #elseif SXC_HLJ let scheme = "sxc-hlj" #elseif SXC_ZJ let scheme = "sxc-zj" #else let scheme = "" #endif
元件化的話,使用了自己開發的QCRouter來進行解耦,思路不知道對不對,大家有什麼好的建議可以提一下。
-
建立類的時候要注意選擇正確的Target
本文demo地址
參考文章
相關文章
- iOS元件化實踐iOS元件化
- Android 元件化最佳實踐Android元件化
- 元件化工具BeeHive(二):元件化實踐元件化Hive
- Android元件化探索與實踐Android元件化
- Android元件化最佳實踐-ARetrofitAndroid元件化
- 元件化實踐詳解(二)元件化
- 元件化實踐詳解(一)元件化
- iOS 解藕、元件化最佳實踐iOS元件化
- Android元件化實踐專案分享Android元件化
- Android 元件化最佳實踐 ARetrofit 原理Android元件化
- iOS 配置多targetiOS
- iOS 元件化/模組化架構設計實踐iOS元件化架構
- Android客戶端專案元件化實踐Android客戶端元件化
- Android元件化開發實踐和案例分享Android元件化
- 移動端APP元件化架構實踐APP元件化架構
- vue-cli多頁面應用實踐,實現元件預覽Vue元件
- Android元件化開發實踐(一):為什麼要進行元件化開發?Android元件化
- 基於 MVP 的 Android 元件化開發框架實踐MVPAndroid元件化框架
- 基於CocoaPods的元件化原理及私有庫實踐元件化
- Xcode專案的多Target管理XCode
- Android 基於註解IOC元件化/模組化的架構實踐Android元件化架構
- JMeter元件作用域實踐指南JMeter元件
- 雲音樂前端國際化多語言探索實踐前端
- webpack多頁面實踐Web
- Flutter多語言實踐Flutter
- Android 元件化之通訊(多模組,多程式)Android元件化
- 醫動力Android基於CC元件化框架的探索與實踐Android元件化框架
- Kotlin+元件化開發實踐—開源專案Designer-AppKotlin元件化APP
- Android元件化實現Android元件化
- vue實踐:元件雙向繫結Vue元件
- ?vue元件釋出npm最佳實踐Vue元件NPM
- React 進階二-元件最佳實踐React元件
- 多容器動態化方案在遊戲SDK中的實踐遊戲
- 漫談 React 元件庫開發(二):元件庫最佳實踐React元件
- React元件設計實踐總結02 - 元件的組織React元件
- 最佳實踐丨雲開發CloudBase多環境管理實踐Cloud
- 基於CMS的元件複用實踐元件
- React實現元件全屏化React元件
- 火掌櫃iOS端基於CocoaPods的元件二進位制化實踐iOS元件