代码发布到CocoaPods

每次尝试接触一个新东西,总不免出些七七八八,乱七八糟的问题。明明之后很多操作好像似乎也一样,但是一开始总要报各种错。好在查了资料,终归是成功了的,记录一下笔记,方便下回使用。

大致流程
1.准备好要发布到cocoapods的代码。
2.创建.podspec,并根据自己的项目情况,编辑.podspec文件。
3.将包含.podspec的项目上传到GitHub,并且保证上传后GitHub上包含.podspec及一份LICENSE证书。
4.讲项目打成tag
5.注册并验证cocoapods
6.发布

第1步省略,从第2部说起。
2.创建.podspec,并根据自己的项目情况,编辑.podspec文件
①创建.podspec:终端cd到要上传的项目目录,使用:

//YourPodName 改成你自己pod框架的名字
pod spec create YourPodName

创建完成之后,就会在自己项目的文件夹里看到一个YourPodName.podspec的文件。对这个文件进行编辑。
②.podspec文件编辑
文件里以#开头的是注释,都可以删掉,剩下有用的信息看得更清晰。先放一份方便复制修改的,底下再放一份加注释说明的。

Pod::Spec.new do |s|
  s.name         = "YourPodName"   
  s.version      = "1.0.0"
  s.summary      = "这是简介"
  s.description  = <<-DESC
                这是描述,描述需要比简介长。
                   DESC
  s.homepage     = "https://github.com/gulingxuan/YourPodName"
  s.license      = "MIT"
  s.license      = { :type => "MIT", :file => "LICENSE" }
 s.platform     = :ios, "8.0"
  s.author             = { "gulingxuan" => "[email protected]" }
  s.social_media_url   = "https://weibo.com/xuanxuan7520"
  s.source       = { :git => "https://github.com/gulingxuan/YourPodName.git", :tag => "v#{s.version}" }
  s.source_files  = "YourPodName/**/*.{h,m}"
  s.requires_arc = true
end
Pod::Spec.new do |s|
#项目名字
  s.name         = "YourPodName"   

#版本号,需要和github上打的tag标签号保持一致,否则上传的时候会报错
  s.version      = "1.0.0"        
#项目简介            
  s.summary      = "这是简介"      
  #项目描述
  s.description  = <<-DESC      
                这是描述,描述需要比简介长。
                   DESC
#项目的主页
  s.homepage     = "https://github.com/gulingxuan/YourPodName"
 # 开源证书
  s.license      = "MIT"        
#证书相关的吧,不知道具体什么鬼
  s.license      = { :type => "MIT", :file => "LICENSE" }
#平台及支持的最低版本
 s.platform     = :ios, "8.0"
# 作者信息
  s.author             = { "gulingxuan" => "[email protected]" }
# 个人主页
  s.social_media_url   = "https://weibo.com/xuanxuan7520"
#你的仓库地址,不能用SSH地址
  s.source       = { :git => "https://github.com/gulingxuan/YourPodName.git", :tag => "v#{s.version}" }
# 代码的位置, YourPodName/*.{h,m} 表示 YourPodName 文件夹下所有的.h和.m文件
  s.source_files  = "YourPodName/*.{h,m}"
# 是否启用ARC
  s.requires_arc = true
 #支持的框架
s.frameworks   = "UIKit", "Foundation"
# 依赖库
# s.dependency   = "AFNetworking" 
end

③验证.podspec 文件的格式是否正确,这一步十分重要,必须要验证通过才行。
终端继续使用命令:

// 也可以使用 pod lib lint YourPodName.podspec
$ pod lib lint

验证如果有error,则必须要解决,WARN能解决也尽量解决。如果出现以下警告

 - WARN  | url: There was a problem validating the URL http:xxxxx

也可以用以下命令验证

$ pod lib lint --allow-warnings

这个解决方法在别人的文章里看到,的确可以验证通过,但是后面上传的时候还是报错了。最后是升级了一堆乱七八糟的环境之后,重新走了一遍所有流程,发现没有这个警告了,再上传就成功了。所以这个验证方式会是否管用,我没有成功验证过。仅供参考。
3.所有编辑完成之后,将项目及包含.podpesc文件及 LICENSE证书的文件上传到Github。LICENSE文件可以在创建GitHub项目的时候一起生成。具体上传就不细说了。
4.给项目Git打tag,第一次需要在前面加个v。我第一回没有加,果然是报错了。打tag并推送到远程仓库:

//这里的tag版本号,必须和podspec中的版本号保持一致,大写加粗描黑的必须。
$  git tag "v1.0.0"
$  git push --tags
  1. 如果注册了cocoapods,就不必再注册了,如果没有注册,则先注册。所以建议先验证,再注册,最后再验证,没问题再推。
//验证你的信息
pod trunk me
//没有则注册,[email protected] 和YourName换成自己的邮箱及名字
pod trunk register [email protected] "YourName"
//再次验证
pod trunk me
  1. 验证没有问题则开始发布到仓库
pod trunk push YourPodName.podspec

如果整套流程都没有问题,并且发布成功了,就可以查询仓库看一下了。

pod search YourPodName

处查到基本就完成了整个上传发布,大功告成。

============= 报错分割线 =============

如果出现报错:

1.- ERROR | [iOS] unknown: Encountered an unknown error (/usr/bin/xcrun simctl list -j devices

xcrun: error: unable to find utility "simctl", not a developer tool or in PATH
) during validation.

[!] The spec did not pass validation, due to 1 error.

设置一下Xcode


代码发布到CocoaPods_第1张图片
error.png

你可能感兴趣的:(代码发布到CocoaPods)