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
相关文章
相关标签/搜索