推广

iOS 组件化(一)

iseeyu2年前 (2024-02-21)推广112

组件化图示

组件化方案
  • 本地组件化:通过创建library,利用cocoapodsworkspec进行本地管理,通过framework方式直接调用
  • cocoapods组件化:将模块上传到私有库,通过cocoapods远程管理

本地组件化

1、创建主工程
  • 创建主工程
  • 集成cocoapods
  • 编辑Podfile,执行pod install

    image.png

2、创建组件

我们创建一个Base模块

  • 选择File --> new --> iOS --> Framework

Framework

  • 选择正确的WorkSpaceGroup,最好放在主工程目录下

    关联

  • 修改创建的library静态库

    静态库

3、调用library
  • 新建一个文件,并添加外部属性

    image.png

  • 将需要暴露的外部接口文件,移动到Build Phases -> Headers -> Public

    image.png

  • 在主工程下,选择target --> Build Phases --> Link Binary With Libraries,添加YPBaseModule

    image.png

  • 在主工程下,选择Target ->Build Setting -> Search Paths -> User Header Search Paths里面添加${SRCROOT}

    image.png

4、使用

**子library之间相互调用和主工程调用类似,只需要添加依赖和暴露header *

image.png

5、cocoapods管理三方依赖

platform :ios, '10.0'
use_frameworks!

#配置workspace路径
workspace 'YPProject.xcworkspace'

################# 三方依赖
# 公有
def workspace_pods
  pod 'YYModel'
end

# 主工程
def project_only_pods
  pod 'Masonry'
end

#网络
def network_layer_pods
  pod 'AFNetworking'
end

################# 模块
target 'YPBaseModule' do
  #配置library路径
  project 'YPProject/YPBaseModule.xcodeproj'
  
  workspace_pods
  network_layer_pods
end

################# 主工程
target 'YPProject' do
  workspace_pods
  project_only_pods
  network_layer_pods
end

cocoapods组件化

cocoapods组件化流程

1、创建私有仓库
  • 登录github –> 点击右上角+号 –> 选择new repository –> 输入仓库名字,选择仓库类型为private,点击创建
  • 将私有库添加到本地~/.cocoapods/repos目录
pod repo add TestModule https://github.com/Ymuyangyin/TextModule
2、创建工程
  • 终端创建YPServices模块
pod lib create YPServices
  • 根据提示输入

    image.png

  • 将模块代码拷贝到/YPServices/Classes目录下

    image.png

  • 执行pod install,Classes目录下的文件就会更新到pods

    image.png

3、配置
通过修改配置文件YPServices.podspec
  • 添加第三方库依赖
s.dependency 'AFNetworking'
  • 其他模块引用
//1、修改对应的podspec
s.dependency 'YPServices'
//2、修改podfile
pod 'YPServices',  :path => '../../YPServices'

  • 加载图片、xib、bundle等文件

    • 对应模块的Assets文件中添加资源文件
    • spec配置资源文件路径
      s.resource_bundles = {
       'YPServices' => ['YPServices/Assets/*']
     }
    
    • 访模块的资源文件需要指定资源文件路径
    NSString *path = [[NSBundle bundleForClass:[YPServices class]]  pathForResource:@"Player_Video_Url" ofType:@"json"];
    NSData *data = [NSData dataWithContentsOfFile:path];
    
    YPErrorView *errorView = [[[NSBundle bundleForClass:[YPServices class]]loadNibNamed:NSStringFromClass([YPErrorView class]) owner:nil options:nil] lastObject];
    
    
4、提交到git
git init

git add .

git commit -am "首次提交"
//模块仓库地址
git remote add origin https://github.com/Ymuyangyin/YPServices

git push origin master
//添加标签 版本号
git tag -m "first release" "0.1.0"

git push --tags
5、验证podspec文件
  • pod lib lint :验证本地仓库
  • pod spec lint:验证本地和远程仓库
6、提交到私有仓库
pod repo push [本地 Spec Repo名称] [podspec文件路径]
//------------
pod repo push TestModule YPServices.podspec
7、使用

打开podfile文件,添加下面指令,执行pod install

#私有spec仓库的地址,而不是某个pod仓库的地址
source 'https://github.com/Ymuyangyin/TestModule'
pod 'YPServices'

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/57645.html

相关文章

站在网络营销的肩膀,打赢网络翻身仗。

站在网络营销的肩膀,打赢网络翻身仗。

在互联网上销售,并不是大家想象中的那么容易,商家把产品发出去就有人咨询有人买,实际上百分之七十的卖家是无人问津的,只有不到百分之三十的卖家才能卖出产品,而做的风生水起的不过寥寥数几的比例,根本不像大家想象的那么美好。在互联网时代,脱离是不可能的,只有在互联网中求发展才能有更好的未来。那么,对于这些...

超级推荐怎么设置时间折扣(超级推荐时间折扣在哪儿)

超级推荐怎么设置时间折扣(超级推荐时间折扣在哪儿)

当产品的基数和商店重量较低时,就可以通过提高投标价格来提高产品的竞争程度。因为超级推荐就是一个竞价工具,当产品得不到流量时候,可以猜测你喜欢在主页上增加了溢价。...

企业怎么制作有水平的网页。

企业怎么制作有水平的网页。

无论任何行业需要建设一个网站,都是为了设计一个更有雄心的网站,预站应该有自己的网站水平,而且成本也不会太高。但总是对页面不满意。网站不能太漂亮,需要了解客户的需求。客户对主页布局的关注,那么企业怎么制作有水平的网页? 以上是网站在设计和制作上的注意,把握上面的部分,相信设计是一个层次。做站场的...

品销宝入口在哪里设置(淘宝品销宝入口在哪里)

品销宝入口在哪里设置(淘宝品销宝入口在哪里)

只要是知名品牌的店铺,可以在钻展系统注册成为明星店铺。成功之后,只要消费者查询与店铺有关系的关键词,最顶部出现的肯定是明星店铺。通过链接直接进入店铺。...

系统设计中需要了解的缓存技术

系统设计中需要了解的缓存技术

数据中心原文地址 摘要 你有没有注意到,如果你在一个网速很慢的环境下浏览网站,页面的文本加载比图片加载更快。然而,你稍后再访问同一网站时,你会发现页面加载速度很快。当你访问一个全新的网站,它需要比经常访问的网站(如Facebook或亚马逊)更多的加载时间。你知道为什么会这样吗?答案是缓...

抖音玩转影视营销的5大技巧 希望对做影视项目的朋友有帮助。

抖音玩转影视营销的5大技巧 希望对做影视项目的朋友有帮助。

自从抖音火了以后,影视营销阵地又多了一块,“双微”后面加上了“一抖”。 据7月最新数据显示,抖音日活超过3.2亿,成为流量最大的短视频平台。而1月份抖音的日活就突破了2.5亿,月活突破5亿。半年时间,抖音增长了7000万日活。相较电影市场的增速放缓,抖音依然是高歌猛进的势头。 抖音市场总经...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片