iOS 组件化

分享
藏宝库编辑 2024-9-26 14:12:28 132 0 来自 中国
一、创建远程索引库

1、我们先在GitHub上创建一个organization

1.png 2、添加一个远程索引库,填写相关信息
3、创建本地索引库,并与远程索引库做关联
a、打开终端,pod repo add 本地索引库的名字 远程索引库的所在
比方:pod repo add JerryNetworkManager https://github.com/JerryYJL/JerryNetworkManager.git
b、pod repo检察是否创建乐成
二、创建组件

1、开始创建组件

a、cd 到指定目录,然后pod lib create 组件名
比方 pod lib create JerryNetworkManager
b、而后填上项目相关信息,便能乐成创建组件
2、目录相关

a、podspec文件

该文件是组件的焦点设置中心,看一下podspec语法
Pod::Spec.new do |s|#  组件名  s.name             = 'JLNetworkingManager'#  版本号,与tag标签对应  s.version          = '0.1.5'#  组件的形貌  s.summary          = 'A short description of JLNetworking.'# This description is used to generate tags and improve search results.#   * Think: What does it do? Why did you write it? What is the focus?#   * Try to keep it short, snappy and to the point.#   * Write the description between the DESC delimiters below.#   * Finally, don't worry about the indent, CocoaPods strips it!  s.description      = <<-DESCTODO: Add long description of the pod here.                       DESC#  组件所在的远程堆栈  s.homepage         = 'https://github.com/JLNetWorking/JLNetworking'  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'#  开源协议  s.license          = { :type => 'MIT', :file => 'LICENSE' }#  作者信息  s.author           = { 'Jerry' => '110*****@qq.com' }#  git所在,版本号  s.source           = { :git => 'https://github.com/JLNetWorking/JLNetworking.git', :tag => s.version.to_s }  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'#  支持的iOS最低版本  s.ios.deployment_target = '11.0'#  指定Swift编译版本  s.swift_version = "5.0"#  内核设置  s.pod_target_xcconfig = { 'VALID_ARCHS' => 'x86_64 armv7 arm64' }#  必备项,代码源文件所在,假如有多个目录下则用逗号分开,否则"public_header_files"等不可用  s.source_files = 'JLNetworking/Classes/**/*'#  公开头文件所在  # s.public_header_files = 'Pod/Classes/**/*.h'#  所需的体系framework,多个用逗号隔开,不须要后缀名  # s.frameworks = 'UIKit', 'MapKit'#  资源路径  s.resource_bundles = {    'JLNetworkingManager' => ['JLNetworkingManager/Assets/**/*']  }#  依赖第三方  s.dependency 'Moya/RxSwift'  s.dependency 'RxCocoa'  s.dependency 'HandyJSON'  s.dependency 'SwiftyJSON'  s.dependency 'SnapKit'endb、example文件,重要写demo相关

这个一样平常都是写demo,给别人看这个组件是怎么用的,另有跑起来是啥结果之类的
c、Podfile文件

这里可以导入你的demo须要的第三方,且不会引入到你的组件里面
use_frameworks!platform :ios, '11.0'target 'JLNetworking_Example' do  pod 'JLNetworkingManager', :path => '../'  target 'JLNetworking_Tests' do    inherit! :search_paths  endendd、组件的焦点内容

这里就可以开始你的代码秀了
3、上传

git add .
git commit -m 'xxx'
git remote add origin https://github.com/JLNetWorking/JLNetworking.git
git push origin master
git tag 版本号(需与podspec中的版本号同等)
git push --tags
4、podspec验证

pod spec lint --verbose --allow-warnings --sources='https://github.com/JLNetWorking/JLNetworking.git'
表明
--verbose:打印错误
--allow-warnings:答应警告,默认有警告的podspec会验证失败
--sources:假如依赖了其他不包含在官方specs里的pod,则用它来指明源,好比依赖了某个私有库。多个值以逗号分隔
5、推送

推送分为2种情况,一个是私有库的推送,比方公司自己的gitLabel;第二个是公有库,比方前面的GitHub
a、私有库的推送

私有库的推送比力直接
pod repo push JLNetworking JLNetworking.podspec --verbose --allow-warnings --sources=https://github.com/JLNetWorking/JLNetworking.git
b、公有库的推送

公有库的推送就比力贫困,由于须要推送到cocoapods,所以第一次推送须要注册账号
注册账号
pod trunk register 邮箱 '名字' --description='macbook air' --verbose
注册完会收到一份邮件,须要点击验证,验证完之后可以检察个人信息
pod trunk me
假如信息精确,就可以推送了
pod repo push JLNetworking JLNetworking.podspec --verbose --allow-warnings --sources=https://github.com/JLNetWorking/JLNetworking.git
5、验证

pod search JLNetworkingManager
假如没有搜到,大概就是本地堆栈没有更新
更新repo库,然后再搜
pod repo update
pod组件就完成了,下一篇开始主项目跟组件的交换
原链接:https://www.jianshu.com/p/2b9e6cf0191f
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-22 11:30, Processed in 0.189298 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表