iOS使用pod创建本地库

如果想让项目可以根据自己的需求进行源代码切换。或者使得项目达到低耦合的组计划,首页制作本地pod库是第一步,我也曾遇到这个问题,网上搜索之后发现自己的第一步找的很正确,所以为了自己以后方便找,所以特意在自己描述一下这个过程。

我用这种方式是本身我之前的库内容比较多,想要实现组件化管理,只能用下沉库的方式,如果是一个新项目,直接 pod lib create 方式创建。

参考的文章在这里:iOS使用pod创建本地库

创建pod本地库

1.我们需要用pod来管理我们的项目,如果之前没有用pod来管理,以下方法可以帮助你切换到pod管理项目。
//首先cd到自己的工程目录下面

cd Desktop/TTProject/

//pod init 初始化可以自动创建一个podfile,如果本身即是pod的管理那就不需要了

pod init

2.直接在工程目录下面创建podspec文件(podspec文件必须和你的工程名字一致)
pod spec create TTProject

创建成功之后,打开编辑podspec文件,可以用文本编辑器打开,后期生成workspace就可以直接在xcode打开编辑,一些注释信息可以不要,剩下如下信息:

Pod::Spec.new do |spec|


  spec.name         = "TTProject"
  spec.version      = "0.0.1"
  spec.summary      = "A short description of TTProject."

  spec.description  = "组件化"

  spec.homepage     = "http://aaa/TTProject"
 
  spec.license      = "MIT"
  spec.author             = { "huweihong" => "[email protected]" }
      spec.source       = { :git => "http://aaa/TTProject.git", :tag => "#{spec.version}" }
 
end

如果想要接收参数来控制代码可以向上面的代码内加入部分代码,代码如下:

#这个t可以是Jenkins上shell传出来的参数

$lib = ENV['t']
if $lib == "1"
    puts "this is choice 1"
    puts $lib
    spec.source_files  = "TTProject/Classes/COO/*.h"

elsif $lib == "2"
  puts "this is choice 2"
  
  spec.source_files  = "TTProject/Classes/COO/*.m"
elsif $lib == "3"
  puts "this is choice 3"
  spec.source_files  = "TTProject/Classes/COO/*"
else
  puts "this is default choice"
 spec.source_files  = "TTProject/Classes/*"

end
具体参数的解释:
1、spec.summary 赋值内容随便写
2.spec.description 赋值内容随便写
3.去除这个文件里所有跟EXAMPLE相关的内容,比如s.homepage。注意,这里内容都不能为空,不然会出警告、
4.新建LICENSE文件,如图所示

新建LICENSE文件,内容随你,我这里选了MIT(如果是从git上拉去下来的项目可以选择带有LICENSE文件就不用创建了)

The MIT License (MIT)Copyright ©2018Permissionishereby granted, free of charge, to any person obtaining a copy of this softwareandassociated documentation files (the “Software”), to dealinthe Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,and/orsell copies of the Software,andto permit persons to whom the Softwareisfurnished to do so, subject to the following conditions:The above copyright noticeandthis permission notice shall be includedinall copiesorsubstantial portions of the Software.THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

image
5.配置LICENSE :spec.license ="LICENSE"
6.修改路径:source改为这样,tag是你的版本号,你随意。
7.创建本地文件,可以在自己的工程目录下和工程目录一样名字的文件夹建立一个Classes文件夹

我们可以看到

spec.source_files = "TTProject/Classes/COO/*.h"

这前面对应的文件夹都是Classes,所我们建立Classes文件夹,如图所示。这个文件夹不一定得叫Classes,如果叫别的你就得去改source_files和exclude_files的配置。


image
8.可以在Classes中放入自己建立的文件我创建了
image
9.填写Podfile:你看这里的路径是你自己填写的,所以你这个文件夹用别的名字也行。
pod 'TTProject', :path =>'./'

验证本地库

1.进行pod验证
pod lib lint

如果出现以下错误需要把错误问题解决了。

2.出现警告可以忽略
pod lib lint --allow-warnings

提示: TTProject passed validation. 就是本地通过验证了

拉取本地库

pod install --verbose --no-repo-update

这里只拉去Coo文件夹下的两个文件,所以只显示两个文件


image

切换文件路径spec.source_files

#切换spec.source_files

 spec.source_files  = "TTProject/Classes/*"

然后 pod update --no-repo-update


image

接下来还会有文章说明在podspec中加入判断配合终端的使用来切换本地的文件。

你可能感兴趣的:(iOS使用pod创建本地库)