组件化学习

作者: 马戏团小丑 | 来源:发表于2017-03-22 17:57 被阅读50次
  • 组件化是什么
  • 组件化是通过cocoapods的形式安装各个组件,那么就要了解cocoapods是怎么打造本地私有库,远程私有库

  • 而组件化所需要的就是打造远程私有库

当pod install 远程私有库失败找不到的时候,项目工程中profile文件欠缺了远程私有库的源地址
source 'git@git.coding.net:seemygo_wangshunzi/XMGFMSpecs.git' // 远程私有库的源地址
source 'https://github.com/CocoaPods/Specs.git' // 远程公有库的源地址

在2.3提交代码到远程私有仓库后要修改.podspec文件才能2.5绑定tag,以下是.podspec修改后的样式,就是为了给本地私有仓库添加tag,再添加到远程(就是为了给远程绑定tag)

#
# Be sure to run `pod lib lint XMGFMBase.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#

Pod::Spec.new do |s|
  s.name             = 'XMGFMBase'
  s.version          = '0.3.0'
  s.summary          = 'XMGFMBase.'

# 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      = <<-DESC
XMGFMBase.包含了基本的配置, 分类, 工具类等等
                       DESC

  s.homepage         = 'https://coding.net/u/seemygo_wangshunzi/p/XMGFMBase'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { '王顺子' => '123@qq.com' }
  s.source           = { :git => 'https://git.coding.net/seemygo_wangshunzi/XMGFMBase.git', :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

  s.ios.deployment_target = '8.0'

  s.source_files = 'XMGFMBase/Classes/**/*'
  
  # s.resource_bundles = {
  #   'XMGFMBase' => ['XMGFMBase/Assets/*.png']
  # }

  # s.public_header_files = 'Pod/Classes/**/*.h'
  # s.frameworks = 'UIKit', 'MapKit'
  s.dependency 'AFNetworking'

end
  • 远程私有库的升级维护(更新提交新代码)

重新升级提交到远程仓库之前要修改.podspec文件的版本号

  • 远程私有库依赖问题

依赖第三方框架的时候在.podspec文件后面添加 s.dependency '第三方框架'

  • 远程私有库设计优化:整个库分解成多个库,pod的时候pod只需要用到的库

注意比如network子库用到AFN,那么在network子库中添加依赖AFN,而不是在整个库中添加依赖了


  • 组件化步骤,以及过程中会遇到的问题



代码加载图片代码:(原因是现在图片已经不再mainBundle里面了)

        NSBundle *currentBundle = [NSBundle bundleForClass:[self class]];
        NSString *bundleName = [currentBundle.infoDictionary[@"CFBundleName"] stringByAppendingString:@".bundle"];
        NSString *path = [currentBundle pathForResource:@"tabbar_np_play@2x.png" ofType:nil inDirectory:bundleName];
        UIImage *image = [UIImage imageWithContentsOfFile:path];
  • 主骨架组件的使用问题:统一披露API

相关文章

  • iOS学习之入门组件化

    iOS学习之入门组件化 iOS学习之入门组件化

  • iOS 组件化方案学习

    最近不忙学习了下组件化。现在方案有蘑菇街的组件化架构和casatwy组件化方案。看了不少文章写了原理性的东西。ba...

  • 封装组件-面向对象

    tab组件化tab组件化代码 图片曝光组件化图片曝光组件化代码 轮播组件化轮播组件化代码

  • 组件化(一):搭建远程私有库

    组件化学习之路文章集合: 组件化(二):远程私有库的升级+依赖 组件化的话,我们一般都通过cocoapods库集成...

  • Git 私有库的创建

    最近在学习组件化。组件化有一个方案是利用cocoapods进行管理组件。这就涉及到了specs私有库的创建、维护和...

  • Vue.js

    轻量级 数据驱动 组件化 更易上手 学习曲线平稳 借鉴了angular指令和react的组件化 数据改变驱动视图自...

  • Android组件化 - gradle配置(一)

    一、什么是组件化 什么是组件化呢? 组件化、插件化、模块化之间有什么区别呢? 组件化:每个组件都是独立的功能模块,...

  • Android:插件化

    插件化组件化 组件化与插件化的区别 组件化是Android自然提供的,例如分成lib,test组件。插件化是热更新...

  • iOS 组件化实战篇(私有库)

    前沿 本片文章主要讲解我们项目中为什么要组件化 组件化的好处 怎么使用组件化 怎么实现组件化 为什么要组件化 ...

  • iOS组件化

    iOS组件化 iOS组件化

网友评论

    本文标题:组件化学习

    本文链接:https://www.haomeiwen.com/subject/praonttx.html