cocoapods官网查看
- 创建Podspec描述文件,cd 到文件的跟目录下,在终端中输入
pod spec create 描述文件名称
,一般描述文件名称最好和项目名称一致。
pod spec create TestLib
- 在项目目录中可以查看到已创建成功的
spec描述文件
- 用Xcode工具 打开项目中的
spec描述文件
在文件中 需要设置以下内容:
s.name = "TestLib" // 名称
s.version = "0.0.1" // 版本
s.summary = "A short description of TestLib." // 简介
s.description = “TestLib, 这个是详细描述 一定要注意! 字数比s.summary长 ”
s.homepage = "https://github.com/Mrhuangchina/testFiel" // 首页 以TestLib结尾。即以spec描述文件名称结尾 可以换成仓库地址
s.license = "MIT"
s.author = { "Mrhuangchina" => "xxxx@qq.com" } //这里的是你的Github里的名字 还要你的登录帐号邮箱
Or just: s.author = "Mrhuangchina"
s.authors = { "Mrhuangchina" => "xxxx@qq.com" } //这里的是你的Github里的名字 还要你的登录帐号邮箱
// source 这里 将改成你的spec描述文件的仓库地址 tag 和s.version 版本 保持一致 也就是Github仓库中的releases版本号
s.source = { :git => "https://github.com/Mrhuangchina/testFiel.git", :tag => "#{s.version}" }
// 在指定该的文件中 ** 通配符 标示目录 *.{h,m}:* 代表的是文件夹
s.source_files = "Classes", "Classes/**/*.{h,m}"
s.exclude_files = "Classes/Exclude"
Pod::Spec.new do |s|
s.name = "PodTestLibrary" #名称
s.version = "0.1.0" #版本号
s.summary = "Just Testing." #简短介绍,下面是详细介绍
s.description = <<-DESC
Testing Private Podspec.
* Markdown format.
* Don't worry about the indent, we strip it!
DESC
s.homepage = "https://coding.net/u/wtlucky/p/podTestLibrary" #主页,这里要填写可以访问到的地址,不然验证不通过
# s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2" #截图
s.license = 'MIT' #开源协议
s.author = { "wtlucky" => "wtlucky@foxmail.com" } #作者信息
s.source = { :git => "https://coding.net/wtlucky/podTestLibrary.git", :tag => "0.1.0" } #项目地址,这里不支持ssh的地址,验证不通过,只支持HTTP和HTTPS,最好使用HTTPS
# s.social_media_url = 'https://twitter.com/<twitter_username>' #多媒体介绍地址
s.platform = :ios, '7.0' #支持的平台及版本
s.requires_arc = true #是否使用ARC,如果指定具体文件,则具体的问题使用ARC
s.source_files = 'Pod/Classes/**/*' #代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则用逗号分开,如果需要在项目中分组显示,这里也要做相应的设置
s.resource_bundles = {
'PodTestLibrary' => ['Pod/Assets/*.png']
} #资源文件地址
s.public_header_files = 'Pod/Classes/**/*.h' #公开头文件地址
s.frameworks = 'UIKit' #所需的framework,多个用逗号隔开
s.dependency 'AFNetworking', '~> 2.3' #依赖关系,该项目所依赖的其他库,如果有多个需要填写多个s.dependency
end</twitter_username>
- 在上述设置
spec描述文件
中,我们看到tag => "#{s.version}
tag
和spec描述文件
版本号需要一致,但我们并没有设置tag
,所以接下来需要设置tag
git tag '0.0.1' //设置tag 并且tag值必须和spec描述文件version一致
git push --tags // 将tag 值 push 到远程仓库。
-
cocoapods
官网中找到GUIDES
里并找到Getting setup with Trunk
注册Trunk,其Trunk作用则是将我们之前创建的spec描述文件
上传到cocoapods
远程索引库中。
$ pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air' // 即下面这行解释 description 描述信息(可写可不写)
$ pod trunk register 邮箱地址 '名字' --verbose //--verbose 打印一些详细信息
在你刚刚填写的邮箱中打开收到的邮件注意有可能会在你的垃圾箱里,找到邮件打开里面的链接则完成显示如下图表示成功:
依据刚刚验证的网站中的提示:在终端中输入:
pod trunk push 描述文件名称
-> TestLib (0.0.1)
- ERROR | file patterns: The `source_files` pattern did not match any file.
[!] The spec did not pass validation, due to 1 error.
这个是在指定共享的类库时, 文件路径不对, 也就是设置 s.source_files
字段时, 发生了错误, 这里的路径是相对于TestLib.podspec
文件的, 如果是与TestLib.podspec
同级的文件夹, 直接写文件夹名称即可, 如:
s.source_files = "TestLib"
如果有多级目录, 一定要逐级添加. 这里也可以这么写:
s.source_files = "TestLib/*.{h,m}"
需要注意的是s.source_files参数,如果配置为s.source_files = '/*.{h,m}’,会报错:
- ERROR | File Patterns: File patterns must be relative and cannot start with a slash (source_files).
其它可能的报错:
- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
- pod search
项目名称
来验证是否上传到检索库成功- 搜索不到
Unable to find a pod with name, author, summary, or description matching TestLib.
- 搜索不到
- 解决办法:
- 1.pod install --repo-update
- 2.或者全部删除:使用命令:rm ~/Library/Caches/CocoaPods/search_index.json
- 3.重新search GKFramework
可参考 cocoapods Error
- —————————————————————————————
-
cocoapods 本地私有库的使用
- 在本地私有库的文件中先创建一个
spec
文件
- 修改
spec
文件中的source_file
的路径,因为是本地私有库文件 所以直接删除远程库配置的git
路径中的URL
。
- 进入到需要引用本地私有库的工程文件中,并且创建
Podfile
文件
- 修改
Podfile
文件,:patch =>'../TestLib/TestLib'
代表在某个文件路径下寻找到spec
文件,否则会自动在远程索引库中去寻找。
-
Pod install
安装本地私有库文件,并可以在工程文件中使用。
- 在本地私有库的文件中先创建一个
- —————————————————————————————
-
cocoapods 远程私有库的使用