1.创建示例项目(自己私有库的项目是一般都是按照这个模板来的)
- 创建一个文件夹存放示例项目比如testtt
- cd /Users/admin/Desktop/testtt 到当前目录下
//YourLib是要创建的示例项目的名称
pod spec create YourLib
- 在项目的testPodsss文件夹内添加你自己的代码
2.创建私有的Spec Repo
Spec Repo
是所有的Pods的一个索引,是所有公开的Pods 的podspec 文件的一个仓库,其实就是一个部署在服务器的Git仓库,当你使使用CocoaPods 后它会被Clone到本地的 ~/.cocoapods/repos
目录下,大概的文件目录如下:
.
├── MySpecs
│ ├── MyLib
│ │ └── 0.1.1
│ │ └── MyLib.podspec
│ └── README.md
└── master
├── CocoaPods-version.yml
├── README.md
└── Specs
├── !ProtoCompiler
│ ├── 3.0.0
│ ├── 3.0.0-beta-3.1
│ └── 3.0.0-beta-4
├── !ProtoCompiler-gRPCPlugin
│ ├── 0.14.0
│ ├── 1.0.0
│ ├── 1.0.0-pre1
│ ├── 1.0.0-pre1.1
│ └── 1.0.0-pre1.2
上文的目录树形图就是我电脑的本地的 ~/.cocoapods/repos
目录,其中master就是官方的Sepc Repo
,跟master
同目录级别的MySpecs
目录就是我自己的创建的私有Sepc Repo
。
通过以下命令来关联你本地的私有库和git服务器上私有库的代码
# pod repo add [Private Repo Name] [GitHub HTTPS clone URL]
$ pod repo add MySpecs https://git.coding.net/kensla/MySpecs.git
3.编辑你的testPodsss.podspec
文件
#
# Be sure to run `pod lib lint MyLib.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#
Pod::Spec.new do |s|
#名称
s.name = 'MyLib'
#版本号
s.version = '0.1.0'
#简介
s.summary = '这个是我的私有库项目Demo.'
# This description is used to generate tags and improve search results.
# * Think: What does it do? Why did you write it? What is the focus?
# * Try to keep it short, snappy and to the point.
# * Write the description between the DESC delimiters below.
# * Finally, don't worry about the indent, CocoaPods strips it!
s.description = <<-DESC
这个是教程的 私有库项目 学习Demo.
DESC
#主页,这里要填写可以访问到的地址,不然验证不通过
s.homepage = 'https://coding.net/u/kensla'
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
#开源协议
s.license = { :type => 'MIT', :file => 'LICENSE' }
#作者
s.author = { 'kensla' => '604217454@qq.com' }
#项目地址,这里不支持ssh的地址,验证不通过,只支持HTTP和HTTPS,最好使用HTTPS。
#这里的s.source须指向存放源代码的链接地址,而不是托管spec文件的repo地址
s.source = { :git => 'https://git.coding.net/kensla/MyLib.git', :tag => "0.1.0" }
#s.social_media_url = 'http://weibo.com/kensla'
#支持的平台及版本
s.ios.deployment_target = '7.0'
#代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则
#用逗号分开,如果需要在项目中分组显示,这里也要做相应的设置
s.source_files = "MyLib/Classes/**/*"
#资源文件地址
# s.resource_bundles = {
# 'MyLib' => ['MyLib/Assets/*.png']
# }
#公开头文件地址
#s.public_header_files = 'MyLib/Classes/DDCommonBase.h'
#所需的framework,多个用逗号隔开
s.frameworks = 'UIKit'
#依赖关系,该项目所依赖的其他库,如果有多个需要填写多个s.dependency
# s.dependency 'AFNetworking', '~> 2.3'
end
4.验证testPodsss.podspec
文件
$ pod lib lint
5.向Spec Repo提交podspec文件
# pod repo push [Repo名] [podspec 文件名字]
$ pod repo push MySpecs testPodsss.podspec
注意:以上都是网上的教程,你可在校验的时候使用pod lib lint会报错或者警告导致一直校验不通过,解决办法如下:
- 检查是否添加--source
pod spec lint YTCADPreviewModule.podspec --sources='git@dev.yutong.com:iOS_librarys/Specs.git,git@dev.yutong.com:liguangyi/testPods.git,https://github.com/CocoaPods/Specs.git' --allow-warnings —verbose
-
如果还没解决看到了一个大神的暴力解决方法:
不就是编译不通过吗?
直接改源码,将编译检测跳过去,老子不编了,[图片上传失败...(image-2c4eac-1606814731872)]
image.png
检测的源码在
validator.rb
文件 如何找到它?1. 终端
gem which cocoapods
输出:
/usr/local/lib/ruby/gems/2.3.0/gems/cocoapods-1.3.0.beta.2/lib/cocoapods.rb
2. 终端
open /usr/local/lib/ruby/gems/2.3.0/gems/cocoapods-1.3.0.beta.2/lib/
将第一步命令输出的结果去掉最后的文件名
cocoapods.rb
,将前面的路径加到open
命令的后面, 执行命令后会在Finder打开一个lib
文件夹3. 在当前
lib
目录下有个cocoapods
文件夹,进入,validator.rb
文件就在这个文件夹里如何修改它?
找到下面的代码
[图片上传失败...(image-513874-1606814731872)]
源代码.png
改成下面的样子
[图片上传失败...(image-c1d849-1606814731872)]
更改后.png
这样每次向仓库推送podspec文件的时候,都会直接打印一下
xcodebuild --help
然后就算作通过验证了
接下来你就可以安心的 push 你的代码了
像一些x86_64,i386,不支持模拟器啦,这种都是小case,所有编译错误都可以解决注意
-
此方法因为太叼,不到万不得已,不能使用,过分依赖容易走火入魔
[图片上传失败...(image-d82fd6-1606814731872)]
-
一定在本地先以
:path
、:git
等的方式集成一下,确认没问题后再往仓库推 -
搞完以后记得改回到原来的代码,毕竟做库是为了项目使用的,多点检测也是为了保证质量
-
网友评论