一舆绎、設(shè)置gitignore文件
上傳文件的時(shí)候兽叮,我們git導(dǎo)入的第三方庫(kù)完全可以忽略上傳累盗。當(dāng)然還有一些其他你用不到上傳的文件洞焙,都可以通過設(shè)置gitignore來避免這些文件的上傳蟆淀。
# macOS
.DS_Store
# Xcode
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
# Bundler
.bundle
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
# Note: if you ignore the Pods directory, make sure to uncomment
# `pod install` in .travis.yml
#
Example/Pods/
Pods/
Example:就是你的項(xiàng)目名。
二澡匪、組件更新
業(yè)務(wù)組件更新的時(shí)候熔任,需要先更新依賴的基礎(chǔ)組件,否則在校驗(yàn)的時(shí)候會(huì)報(bào)錯(cuò)唁情,找不到相關(guān)的文件或者方法疑苔。所以,流程如下:
1甸鸟、我們需要先給修改的基礎(chǔ)組件打個(gè)正式的tag惦费,然后校驗(yàn)&push組件的xxx.podspec文件。
2抢韭、更新本地repo源薪贫,pod repo update xxx
。
3刻恭、校驗(yàn)我們的業(yè)務(wù)組件后雷,通過后上傳podspec文件。
具體的更新流程見:iOS組件化的創(chuàng)建吠各、tag、提交到遠(yuǎn)端
三勉抓、modulemap
1贾漏、Module
Module(模塊)-最小的代碼單元。
一個(gè)Module是機(jī)器代碼和數(shù)據(jù)的最小單位藕筋,可以獨(dú)立于其他代碼單位進(jìn)行鏈接纵散。通常,Module是通過編譯單個(gè)源文件生成的目標(biāo)文件隐圾。例如:前的test.m被編譯成目標(biāo)文件test.o時(shí)伍掀,當(dāng)前的目標(biāo)文件就代表了一個(gè)Module。
2暇藏、modulemap的作用
modulemap定義:用來描述頭文件與module之間映射的關(guān)系的文件蜜笤。
- 提高編譯時(shí)可擴(kuò)展性,只編譯或 include 一次盐碱。避免頭文件多次引用把兔,只解析一次頭文件甚至不需要解析(類似預(yù)編譯頭文件)
- 減少碎片化沪伙,每個(gè) module 只處理一次,環(huán)境的變化不會(huì)導(dǎo)致不一致
- 對(duì)工具友好县好,工具(語言編譯器)可以獲取更多關(guān)于 module 的信息围橡,比如鏈接庫(kù),比如語言是 C++ 還是 C等等
umbrella作用
它是框架的“主”頭文件
四缕贡、組件化架構(gòu)
分為三個(gè)層級(jí):
1翁授、基礎(chǔ)服務(wù)組件
三方庫(kù)和項(xiàng)目基礎(chǔ)類
2、中間服務(wù)件
打點(diǎn)晾咪、地圖收擦、共用類
3、業(yè)務(wù)組件
項(xiàng)目的各項(xiàng)業(yè)務(wù)拆分成組件禀酱。且相互之間沒有關(guān)聯(lián)炬守,通過中間服務(wù)件相互調(diào)用,包含傳參剂跟,代理减途、block的處理。