Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

iOS基础- Framework的CocoaPods制作

$
0
0

一、创建自己的github仓库

CocoaPods都托管在github上(官方链接为:https://github.com/CocoaPods),所有的Pods依赖库也都依赖github,因此第一步我们需要创建一个属于自己的github仓库。

仓库创建界面如下图:

这里写图片描述

说明:

  1. Repository name 仓库名称,这里写成WZMarqueeView,必填的;
  2. Description 仓库的描述信息,可选的;
  3. 仓库的公开性 这里只能选Public,一个是因为Private是要money的,再一个Private别人看不到还共享个毛;
  4. 是否创建一个默认的README文件 一个完整地仓库,都需要README说明文档,建议选上。当然不嫌麻烦的话你也可以后面再手动创建一个;
  5. 是否添加.gitignore文件 .gitignore文件里面记录了若干中文件类型,凡是该文件包含的文件类型,git都不会将其纳入到版本管理中。是否选择看个人需要;
  6. license类型 正规的仓库都应该有一个license文件,Pods依赖库对这个文件的要求更严,是必须要有的。因此最好在这里让github创建一个,也可以自己后续再创建。我使用的license类型是MIT。

上面的各项都填写完毕后,点击Create repository按钮即可,创建成功地界面如图:
这里写图片描述
到这,仓库创建过程就结束了。

二、clone仓库到本地

为了便于向仓库中删减内容,需要先将仓库clone到本地,操作方式有多种,推荐使用命令行:

$ cd 本地的工程目录
$ git clone https://github.com/jeikerxiao/XXFramework.git  

这里写图片描述

操作完成后,github上对应的文件都会拷贝到本地。

github上仓库中的.gitignore文件是以.开头的隐藏文件,因此这里只能看到两个。 后续我们的所有文件增、删、改都在这个目录下进行。

三、向本地git仓库中添加创建Pods依赖库所需文件

注意:以下描述的文件都要放在步骤二clone到本地的git仓库的根目录下面。

1、后缀为.podspec文件

该文件为Pods依赖库的描述文件,每个Pods依赖库必须有且仅有那么一个描述文件。文件名称要和我们想创建的依赖库名称保持一致,我的XXFraemwork依赖库对应的文件名为XXFraemwork.podspec。

XXFraemwork.podspec:

Pod::Spec.new do |s|
  s.name             = "XXFramework"
  s.version          = "1.0.0"
  s.summary          = "A marquee view used on iOS."
  s.description      = <<-DESC
                       It is a marquee view used on iOS, which implement by Objective-C.
                       DESC
  s.homepage         = "https://github.com/jeikerxiao/XXFramework"
  # s.screenshots      = "www.example.com/screenshots_1", "www.example.com/screenshots_2"
  s.license          = 'MIT'
  s.author           = { "jeikerxiao" => "jeiker@126.com" }
  s.source           = { :git => "https://github.com/jeikerxiao/XXFramework.git", :tag => s.version }
  # s.social_media_url = 'https://twitter.com/NAME'

  s.platform     = :ios
  # s.ios.deployment_target = '5.0'
  # s.osx.deployment_target = '10.7'
  s.requires_arc = true

  #s.source_files = 'WZMarqueeView/*'
  # s.resources = 'Assets'

  # s.ios.exclude_files = 'Classes/osx'
  # s.osx.exclude_files = 'Classes/ios'
  # s.public_header_files = 'Classes/**/*.h'
  s.vendored_frameworks = 'Framework.framework'
  s.frameworks = 'Foundation'

end

文件说明:
该文件是ruby文件,里面的条目都很容易知道含义。
其中需要说明的又几个参数:

  1. s.license Pods依赖库使用的license类型,大家填上自己对应的选择即可。
  2. s.source_files 表示源文件的路径,注意这个路径是相对podspec文件而言的。
  3. s.frameworks 需要用到的frameworks,不需要加.frameworks后缀。

1.2 如何创建podspec文件 大家创建自己的podspec文件可以有两个途径:

  1. 复制我的podspec文件然后修改对应的参数,推荐使用这种方式。
  2. 执行以下创建命令:
$ pod spec create XXFramework  

也会创建名为XXFramework.podspec的文件。但是打开创建完的文件你就会发现里面的东西太多了,很多都是我们不需要的。

2、LICENSE文件

CocoaPods强制要求所有的Pods依赖库都必须有license文件,否则验证不会通过。在创建github仓库的时候,我已经选择了MIT类型的license。

3、主类文件

这里我是添加的Framework.framework库文件(或编写的源代码,这里是我之前生成的静态库文件)

创建Pods依赖库就是为了方便别人使用我们的成果.

4、demo工程

为了快速地教会别人使用我们的Pods依赖库,通常需要提供一个demo工程。我这里没有添加,不过正常项目中强烈建议添加。

5、README.md

使用github的人应该都熟悉这个文件,它是一个成功github仓库必不可少的一部分,使用的是markdown标记语言,用于对仓库的详细说明。

以上所说的5个是创建Pods依赖库所需最基础的文件,其中1、2、3是必需的,4、5是可选但强烈推荐创建的。

我项目中最后的文件结构:
这里写图片描述

四、验证编写的podspec文件

使用命令来验证编写的podspec文件是否正确:

$ pod lib lint
$ pod spec lint XXFramework.podspec

如果一切正常,这条命令执行完后会出现下面的输出:

-> XXFramework (1.0.0)  

XXFramework passed validation.  

到此,pod验证就结束了。 需要说明的是,在执行pod验证命令的时候,打印出了任何warning或者error信息,验证都会失败!如果验证出现异常,打印的信息会很详细,大家可以根据对应提示做出修改。

五、提交修改文件到github

1. 提交代码到Github

接着 把修改好的文件push到github上去

$ git add XXFramework.podspec

$ git commit -am "add XXFramework.podspec file”

$ git push -u origin master

GitHub上最后看到的文件结构为:
这里写图片描述

2.为提交的代码打上tag

cd进入项目目录,进去后输入

$ git tag '1.0.0'  
$ git push --tags  
$ git push origin master  

给项目加入一个tag。以便pod能自动识别,不然后面会有坑。

六、使用Trunk服务提交到Cocoapod官方在Github的specs

在你本地,前往~/.cocoapods/repos/master/Specs,你会看到cocoapod所有公有的开源库配置,这个通过cocoapod官方在github的specs来管理,地址为https://github.com/CocoaPods/Specs

说到这里,你会想把这个库fork分支下来,clone到你本地,把自己的Test.podspec加入,然后add、commit、 push,最后在github上pull request来和官方的主分支合并,可是你会发现请求马上被自动关闭。为什么呢?

虽然一开始使用GitHub Pull Requests来整理所有公共pods效果很好。但是,随着Pod数量的增加,这个工作对于spec维护人员Keith Smiley来说变得十分繁杂。甚至一些没有通过$ pod lint的spec也被提交上来,造成repo无法build。

CocoaPods 0.33中加入了Trunk服务。CocoaPods Trunk服务的引入,解决了很多类似的问题。CocoaPods作为一个集中式的服务,使得分析和统计平台数据变得十分方便。

下面来说说怎么发布CocoaPod。

1.注册Trunk服务

要想使用Trunk服务,首先你需要注册自己的电脑。这很简单,只要你指明你的邮箱地址(spec文件中的)和名称即可。

注册邮箱和用户名:

$ pod trunk register XXX@XXX.com '名字' --verbose

然后验证邮箱:

这里写图片描述

验证邮箱成功:
这里写图片描述

查看注册信息,看我们是否注册成功:

$ pod trunk me

这里写图片描述
出现上图类似信息表示注册成功了。

2.提交cocoa pods

$ pod trunk push XXFramework.podspec

提交成功:
这里写图片描述

3.验证下提交结果

使用下面命令更新本地Spec库:

$ pod repo update

更新下更新本地缓存的Spec库,再去search就能看到了:

$ pod search XXFramework
作者:jeikerxiao 发表于2016/10/21 11:42:05 原文链接
阅读:41 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>