iOS 學習筆記 - 組件化(一)

組件化方案

1、靜態庫static Library

1.Xcode,File -> new -> projest -> static Library ,我命名爲HBTest

2.新建完成後command + B 編譯一下。
3.將當前窗口關閉,而後在原工程中找個文件夾 add File ,將HBTest.xcodeproj添加到文件夾中,注意,若是HBTest.xcodeproj不帶有小三角形,表示還沒編譯過。

4.引入以後並不表明這個工程就立馬可以使用了。在原工程中target -> Build Phases -> Link Binary With Libraries 中,添加對應的.a文件

5.在HBTest工程中,添加測試代碼。
// HBTest .h 文件

@interface HBTest : NSObject

+(void)sayHello;

@end

—————————————————————————
// HBTest .m 文件
@implementation HBTest


+(void)sayHello{
    NSLog(@"hello");
}
@end

複製代碼
6.在原工程中找個位置 #import <HBTest/HBTest.h> 調用 sayHello
#import "ViewController.h"
#import <HBTest/HBTest.h>

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor lightGrayColor];
    // Do any additional setup after loading the view.
    
    [HBTest sayHello];
}

@end

複製代碼
command + R看控制檯打印

2019-10-30 22:40:09.535082+0800 組件化實現[2660:112991] helloios

2、CocoaPods

1.登陸github新建倉庫

2.打開終端 pod lib create HBPodTest,根據提示填入對應內容

What platform do you want to use?? [ iOS / macOS ]
 > ios

What language do you want to use?? [ Swift / ObjC ]
 > objc

Would you like to include a demo application with your library? [ Yes / No ]
 > yes 

Which testing frameworks will you use? [ Specta / Kiwi / None ]
 > none

Would you like to do view based testing? [ Yes / No ]
 > no

What is your class prefix?
 > HB
複製代碼

輸入完成後會自動建立一個工程,包含了一個demo,並打開,以下圖git

其中, HBPodTest爲demo工程,這裏面的Pod已經默認添加了咱們要建立的pod庫

3.到包含有HBPodTest.podspec文件的文件夾中認證

3.1 cd hbpodtest
3.2 pod lib lint HBPodTest.podspecgithub

這裏出現了兩個警告:1)這個提交沒有意義 2)GitHub沒有找到我這個地址(由於我忘記點建立了)swift

警告解決方案
<1> 關於 WARN | summary: The summary is not meaningful. 警告的處理方案。xcode

HBPodTest.podspec 文件中的summary 以及 description 須要編輯內容,且內容不能同樣。bash

<2> GitHub沒有找到我這個地址app

先回去GitHub把倉庫建起來。組件化

3.3 pod lib lint HBPodTest.podspec --allow-warnings 通過一段時間等待以後認準 HBPodTest passed validation.表示認證經過,我看別人的博客都不會出現這個無心義的警告,真是莫名其妙。測試

4.回到工程

4.1 工程中有個配置文件,這裏面對應的都是咱們的pod庫的一些信息,目前咱們還不須要對它作什麼修改,放着就行。固然,若是你GitHub的地址,跟裏面的s.homepage沒對應上的話,仍是要同步的。ui

4.2 添加文件 這裏我選擇直接在當前工程新建文件。 保存路徑務必是在Classes文件夾下 而後往裏面隨便添加一點代碼。想些啥寫啥,能編譯過就行。 後續能夠把 ReplaceMe.m這個文件刪除。

####5.將工程推送到GitHub 5.1 終端cd到.podspec所在的這一層文件夾

5.2 執行git指令

git add .

git commit -m 'first commit'

// 能夠在.podspec文件中的那個地址,好比我就是 : https://github.com/GitHubYhb/HBPodTest
git remote add origin https://github.com/(這裏填gitHub用戶名)/(你的公共庫名).git

git push -u origin master
複製代碼

這時候,咱們GitHub的倉庫中,就會有咱們建立的文件了。

能看到,他上面pod支持 仍是not found 表明咱們的革命還沒有結束。 5.3 再次驗證一下咱們這個pod pod lib lint HBPodTest.podspec --allow-warnings(若是以前不會報警告的就不必 -- 後面的) ####6.提交pod 6.1 Specs倉庫是用來存放GitHub上面全部公共Pod的索引的文件,咱們要作到就是讓本地的pod在Specs創建聯繫.在作這個以前,須要將咱們完善後的工程代碼,打一個tag,同步到服務端

git tag 0.1.0  //  根據本身設置的版原本,下面一句同樣
git push origin 0.1.0
複製代碼

完成後的提示以下圖

6.2 使用spec驗證tag ,平常忽略警告... pod spec lint HBPodTest.podspec --allow-warnings

6.3 提交到Specs倉庫

  1. pod trunk push HBPod.podspec 這裏若是是第一次的話,會報錯,意思是須要先用pod trunk register去註冊

2)pod trunk register 郵箱地址 ‘你的名字’ --verbose 一頓輸出以後,我再一次輸入了 pod trunk push HBPod.podspec而後又提示我那個無心義的警告

3)改命令爲 pod trunk push HBPod.podspec --allow-warnings 而後又報錯,意思是我剛剛註冊的尚未驗證。

4)去剛剛填寫的郵箱內查看郵件,內容以下

複製網址去驗證剛剛註冊的東西

看到這個界面就能夠回到終端了。

5)輸入 pod trunk me,能夠看到咱們的註冊信息

6)再次push 輸入 pod trunk push HBPod.podspec --allow-warnings,一頓輸出。而後就出現了這個東西,很明顯,pod倉庫提交完成。

--------------------------------------------------------------------------------
 🎉  Congrats

 🚀  HBPod (0.1.0) successfully published
 📅  October 31st, 02:23
 🌎  https://cocoapods.org/pods/HBPod
 👍  Tell your friends!
--------------------------------------------------------------------------------
複製代碼

7)回到GitHub能看到咱們的pod支持已經變成了v0.1.0

####7.集成HBPodTest 7.1 找一個工程,在PodFile中添加pod 'HBPodTest' 7.2 pod install 而後發現報錯了!

根據提示內容操做 咱們須要更新本地spec庫 嘗試 pod repo update,而後 pod install

若是不行的話,就按照我這個操做吧。

//這兩條非必須
1. pod repo remove master 
2. pod setup
3. pod repo update
4. pod install
複製代碼

根據以上指令執行後,安裝成功

7.3 調試

總結

  1. GitHub新建倉庫

  2. pod lib create 名稱

  3. 修改 名稱.podspec

    1. summary 簡介
    2. description描述
    3. Swift 須要指定 Swift版本。如:s.swift_version = '5.0'
  4. pod lib lint 驗證

  5. classes文件夾中添加代碼文件

  6. 提交git

    1. git add .
    2. git commit -m 'first commit'
    3. git remote add origin https://github.com/(這裏填gitHub用戶名)/(你的公共庫名).git
    4. git push -u origin master
    5. git tag 0.1.0
    6. git push origin 0.1.0
  7. spec驗證。 pod spec lint 名稱.podspec

  8. pod trunk push 名稱.podspec。成功就表示完成

    1. trunk註冊流程
    2. pod trunk register 郵箱地址 ‘你的名字’ --verbose
    3. 去郵箱驗證
    4. pod trunk me查看信息
    5. pod trunk push 名稱.podspec
  9. GitHub看,是否有pod | 0.1.0的標誌。

  10. 項目集成咱們自建的pod項目。

    1. 出錯的話就更新一下podpod repo update
    2. pod install
    3. 若是很慢的話試試。pod install --no-repo-update
相關文章
相關標籤/搜索