手记

iOS 组件化开发

1、创建模板文件

  1. pod lib create flieName

  2. pod spec create flieName

方法⼀会帮助你创建一⼤大堆的⽂文件,包括演示demo创建;方法⼆方便你在现有的项目中提取你需要制作pod的代码。

这里使用的是方式一

选择平台、语言、模板、类前缀等


2、在模板的Classes文件中不安置自己编写的组件/框架。


3、模板本地安装组件测试

同时把相应的文件拖动如下的模板工程文件中 cmd + B 编辑看看是否正


如果没有问题本地的组件已经完成 可以在工程给使用试试

4、项目本地安装组件测试

这里的路径是找到 podspec 文件。

5、发布到远程服务器

  1. 将自己的本地组件代码发送到某个代码管理库(如:gitHub、码云等)

  2. 进入代码库 cd到文件

  3. 打开文件 open .

  4. 给代码添加gat  git tag 版本号

  5. 把tag推送到远程仓库 git push --tags

6、配置spec文件

  1. Pod::Spec.new do |s|  

  2.     #组件名称  

  3.   s.name             = 'GWHomeKit'  

  4.   #组件版本号  要和tag一致  

  5.   s.version          = '0.1.0'  

  6.   #组件的简短简绍  

  7.   s.summary          = 'GWHomeKit.描述'  

  8. #详细描述  

  9.   s.description      = <<-DESC  

  10. TODO: GWHomeKit.详细描述  

  11.                        DESC  

  12. #仓库主页  

  13.   s.homepage         = 'https://github.com/Gavin/GWHomeKit'  

  14.    

  15.   #CocoaPods强制要求所有的Pods依赖库都必须有license⽂件,否则验证不会通过。license的 类型有很多种,详情可以参考网站tl;dr Legal。在创建github仓库的时候,我已经选择了MIT类型的 license 协议。  

  16.   s.license          = { :type => 'MIT', :file => 'LICENSE' }  

  17.   # 作者 邮箱  

  18.   s.author           = { 'Gavin' => 'wgw12230927@163.com' }  

  19.   #真是的分支地址  

  20.   s.source           = { :git => 'https://github.com/Gavin/GWHomeKit.git', :tag => s.version.to_s }  

  21.   

  22.  #iOS操作系统版本  

  23.   s.ios.deployment_target = '8.0'  

  24.   #组件文件路径  

  25. s.source_files = 'GWHomeKit/Classes/**/*'  

  26. #s.source_files = 'GWHomeKit/Classes/*.{h,m}'  

  27.   

  28.   # s.resource_bundles = {  

  29.   #   'GWHomeKit' => ['GWHomeKit/Assets/*.png']  

  30.   #图片文件路径  

  31.   # }  

  32.   

  33.   # s.public_header_files = 'Pod/Classes/**/*.h'  

  34.   # s.frameworks = 'UIKit', 'MapKit'  

  35.   #框架依赖  

  36.   # s.dependency 'AFNetworking', '~> 2.3'  

  37.   #依赖的组件  

  38.    

  39. end  




这个是在指定共享的类库时, 文件路径不对, 也就是设置s.source_files 字段时, 发生了错误, 这里的路径是相对于.podspec文件的, 如果是与.podspec同级的文件夹, 直接写文件夹名称即可。

7、把spec文件提交的cocoapod

  1. 注册 pod trunk  
    (如:pod trunk register '邮箱' '用户名' --description='电脑描述')
    邮箱会收到一个验证邮件 点击链接即可

  2. 接下来查看个人信息 pod trunk me

    中间可能遇到这种错误:
    `NoMethodError - undefined method 'last' for #<Netrc::Entry:0x007fc59c246378>`
    这时候需要尝试更新gem源或者pod:

    $ sudo gem update --system
    $ sudo gem install cocoapods
    $ sudo gem install cocospods-trunk

    如果遇到这种情况:

    [!]Authentication token is invalid or unverified. Either verify it with ...

    解决方案:

    重新执行第一步注册。重来。

  3.  记得验证spec文件是否正确
    pod lib lint
    (如:pod spec lint GWHomeKit.podspec)

  4.  最后使用pod trunk命令,把podspec文件推送到CocoaPod官方库
    (如: pod trunk push GWHomeKit.podspec)

8到此已经成功了!

接下来需要更新一下本地的pod的json文件即可

1. pod install(这⼀一步已经包括pod setup)
2. pod setup
3. pod repo update
pod setup成功后,依然不不能pod search,是因为之前你执⾏行行pod search⽣生成了了 search_index.json,此时需要删掉。
 
 终端输⼊入:

rm ~/Library/Caches/CocoaPods/search_index.json

9 删除成功后,再执⾏行行:pod search 'GWHomeKit'。

大功告成!可以大功告成!可以去项目中安装自己的组件了

  1. $ pod install  

原文出处

0人推荐
随时随地看视频
慕课网APP