前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS开发 创建podspec文件,为自己的项目添加pod支持

iOS开发 创建podspec文件,为自己的项目添加pod支持

作者头像
码客说
发布2019-10-22 14:36:02
3.9K0
发布2019-10-22 14:36:02
举报
文章被收录于专栏:码客码客

0.准备工作

查看版本

代码语言:javascript
复制
pod --version

1.上传项目源码

把项目源码上传到gitHub仓库再clone到本地(以ZJRefreshControl为例), 如果项目本来就在gitHub的仓库中, 直接clone到本地即可

2.创建项目的podspec文件

用终端命令cd到本地项目目录并执行如下命令:

代码语言:javascript
复制
pod spec create ZJRefreshControl

这时候本地就生成一个ZJRefreshControl.podspec文件

用编辑器打开.podspec文件 (我自己用Sublime Text) 删除不必要的注释 这里只简单介绍基本用法,所以只用到一部分必须得字段 更多字段请移步http://guides.cocoapods.org/syntax/podspec.html

代码语言:javascript
复制
Pod::Spec.new do |s|
  s.name         = "ZJRefreshControl"
  s.version      = "1.1"
  s.summary      = "ZJRefreshControl"
  s.swift_version='5.0'
  s.description  = <<-EOS
  ZJRefreshControl
  EOS
  s.homepage     = "https://github.com/psvmc/ZJRefreshControl"
  s.license      = { :type => "MIT", :file => "License" }
  s.author             = { "psvmc" => "183518918@qq.com" }
  s.ios.deployment_target = '8.0'
  s.source       = { :git => "https://github.com/psvmc/ZJRefreshControl.git", :tag => s.version }
  s.default_subspec = "Core"

  s.subspec "Core" do |ss|
    ss.source_files  = "ZJRefreshControl/Lib/ZJRefreshControl/*.swift"
    ss.framework  = "Foundation"
  end
end

假如依赖第三方库RxSwift 我们可以这样修改上面的配置

代码语言:javascript
复制
s.subspec "Core" do |ss|
	ss.source_files  = "ZJRefreshControl/Lib/ZJRefreshControl/*.swift"
	ss.framework  = "Foundation"
	ss.dependency "RxSwift", "~> 4.0"
end

验证podspec文件 编辑完podspec文件后需要验证一下这个文件是否可用 podspec文件不允许有任何的警告或Error 执行命令

代码语言:javascript
复制
pod lib lint --allow-warnings

如果出现

代码语言:javascript
复制
-> ZJRefreshControl (1.1)

ZJRefreshControl passed validation.

则说明验证通过, 否则, 根据提示修改podspec文件再次验证直到验证通过

如果出现Error但是提示信息不足,可以添加--verbose 以获取更多错误信息

代码语言:javascript
复制
pod lib lint --verbose

3.打tag 上传podspec

podspec文件中需要指定的tag, 完成上述操作后给项目打tag

代码语言:javascript
复制
git tag -m"first release ZJRefreshControl" "1.1"
git push --tags

最后使用pod trunk命令,把podspec文件推送到CocoaPod官方库

pod trunk 需要注册

查看个人注册信息

代码语言:javascript
复制
pod trunk me

如果没有个人信息 就要注册

注册命令

代码语言:javascript
复制
pod trunk register 183518918@qq.com 'psvmc'

邮箱里验证邮件 点击验证连接后 就可以上传了

上传

代码语言:javascript
复制
pod trunk push *.podspec --allow-warnings

这个过程可能会比较耗时,原因你懂的

4.最后

如果一切顺利

代码语言:javascript
复制
pod search ZJRefreshControl

就可以找到刚才的项目了

并且还有安装命令

代码语言:javascript
复制
pod 'ZJRefreshControl','~>1.1'

5.Xcode 8 and iOS 10

如果要提交的组件为swift5.0的 就必须满足以下条件

  • CocoaPods 升级为 1.1.0 及以上
  • 配置文件中添加s.swift_version='5.0'

详细介绍

使用

项目的根目录

代码语言:javascript
复制
vim Podfile

写入如下内容

代码语言:javascript
复制
platform :ios, "8.0"

target 'qgyx' do
	pod 'ZJNotice', '~> 1.4'
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end

qgyx 项目的目录

运行以下命令:

代码语言:javascript
复制
pod install

不更新升级CocoaPods的spec仓库 来缩短pod install的时间

代码语言:javascript
复制
pod install --verbose --no-repo-update

误区install or update

当我们添加新的库的时候,我们要下载库,用的命令是pod install,而不是pod update,因为在第一次pod install后,我们的项目中会生成一个Podfile.lock的文件,他的作用是记录我们新添加库的版本信息,这样的话,如果用pod update,就会下载新版本的库,导致所有代码都要进行更改,这时Podfile.lock也会重新生成 总之 添加库时一定要用pod install命令

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0.准备工作
  • 1.上传项目源码
  • 2.创建项目的podspec文件
  • 3.打tag 上传podspec
  • 4.最后
  • 5.Xcode 8 and iOS 10
  • 使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档