github + SourceTree管理自己的库并上传到cocoapods及各种坑的解决办法
一、上传写好的库到github(我这里使用SourceTree客户端)
1.在github上创建一个仓库

2.将仓库拉倒本地
复制仓库地址


将刚才复制的地址粘贴到这里

3.上传项目到github
将写好的库放在上一步的目标路径文件夹里。 可以看到sourceTree里新增的文件,将为暂存文件放到已暂存。

点下面提交信息的输入框,勾选下面立即推送,可以同时提交到本地及远程仓库

二、上传到cocoapods
1.注册cocoapods
pod trunk register 邮箱地址 ‘用户名’ --description='描述信息'
执行成功后打开你的邮箱验证即可。
pod trunk me 命令检查是否注册成功
2.制作podspec文件
方法一:cd 你的仓库所在目录 ---> pod spec create xxx(xxx是你的sdk名)。然后vi xxx.podspec 进入文件中进行配置。(方法一比较麻烦,不推荐)
方法二:拷贝别人的podspec,然后修改一下就可以。
下面来看看podspec里的内容及含义:
Pod::Spec.new do |s|
s.name = 'LFPickerView'
s.version = '1.0'
s.license = { :type => "MIT", :file => "LICENSE" }
s.summary = '将PickerView,DatePicker封装得更加简单易用,并可搭配UITextField使用'
s.homepage = 'https://github.com/zhanglinfeng/LFPickerView'
s.authors = { '张林峰' => '1051034428@qq.com' }
s.source = { :git => 'https://github.com/zhanglinfeng/LFPickerView.git', :tag => s.version.to_s }
s.requires_arc = true
s.ios.deployment_target = '8.0'
s.source_files = 'LFPickerView/LFPickerView/*.{h,m}'
s.dependency "Masonry"
end
s.name 你的sdk名字 s.homepage 你仓库的主页地址
s.source 仓库地址(注意跟主页地址不一样)及tag
s.ios.deployment_target 最低支持iOS 8.0
s.dependency "Masonry 依赖第三方库
s.source_files 供别人使用的文件(要根据你的文件路径设置,别搞错了,如下图)

然后把这个文件也提交到github。
3.给项目打个tag
tag要跟上一步制作的podspec文件里的tag一致。

4.上传你的sdk到cocoapods
注意:如果你的cocoapods版本低于1.1.0一定要升级。(怎么升级,升级速度慢失败等,网上一堆教程这里不说了)
cd 到你仓库根目录
pod lib lint 命令,对打上的标签与podspec标记的标签进行比验证
pod trunk push 命令,真正执行分支的推送操作
成功截图如下

然后等几个小时到2天,差不多就可以搜到自己的库了。
pod search 你的sdk名
如果好几天了还搜不到,对于有些类库确实是在Cocoapods中所不存在的,为了确定我们搜索的库是不是真的在Cocoapods的Repos中存在,我们可以到https://cocoapods.org/中进行搜索。如果你的库在Cocoapods里,但pod search 你的sdk名 命令还是搜不到。则执行下面操作:
终端输入rm ~/Library/Caches/CocoaPods/search_index.json
再pod search。
5.一些使用技巧
a.使用指定tag
三、解决一些坑
1.- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
解决办法:检查你.podspec文件中s.source_files路径有没有填错
2.did not pass validation ,due to 1 wanrings (but you can use --allow-warnings to ignore them)
解决办法:在命令后面加--allow-warnings
3.
4.- ERROR | xcodebuild: /Users/zhanglinfeng/Library/Developer/Xcode/DerivedData/App-culgapkleglkstaqypgjlqqpywqh/Build/Products/Release-iphonesimulator/LFKit/LFKit.framework/Headers/LFEncryptDecryptUtil.h:10:9: error: include of non-modular header inside framework module 'LFKit.LFEncryptDecryptUtil': '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.0.sdk/usr/include/CommonCrypto/CommonCryptor.h' [-Werror,-Wnon-modular-include-in-framework-module]
解决办法:#import <CommonCrypto/CommonCryptor.h>从.h文件拿到.m文件。原因不明,反正我辛辛苦苦各种尝试,这样就解决了。
github + SourceTree管理自己的库并上传到cocoapods及各种坑的解决办法的更多相关文章
- jquery.form.js上传文件ie弹出下载文件解决办法
在ie下如果返回类型为jsonresult,ie老版本无法识别json类型,默认将会采用下载或者打开文件! 如果使用mvc的话.直接修改action返回类型为string即可,例如:return Js ...
- 8.Element-ui日期组件上传到后台日期少一天解决办法
<el-date-picker type="date" value-format="yyyy-MM-dd" placeholder="转出日期& ...
- chrome文件上传 /获取文件路径c:/fakepath的解决办法
jsp页面 <td style="text-align: left;padding-left: 20px;"> <img name="image&quo ...
- 用命令行在本地创建一个库并上传到Github
1 如何在本地创建一个仓库并上传到github? 基本步骤: $ mkdir blog //在桌面上创建一个叫"blog"的目录 $ cd blog //"cd blo ...
- 将自己写的库上传到cocoapods(2015)
2015年以前上传到cocoapods的方式相较于现在比较麻烦,现在用不上在此也就不提了.现在上传到cocoapods只需要简单的几步即可. 1.首先你需要有一个自我感觉写的差不多的库. 2.注册tr ...
- [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表
写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...
- 跟我学SharePoint 2013视频培训课程——怎样创建文档库并上传文档(8)
课程简介 第8天,怎样在SharePoint 2013怎样创建文档库并上传文档. 视频 SharePoint 2013 交流群 41032413
- 在 github 中新建仓库后,如何上传文件到这个仓库里面。
在 github 中新建仓库后,如何上传文件到这个仓库里面. libin@hglibin MINGW64 /e/github.io (master) $ git remote libin@hglibi ...
- 利用git把本地项目传到github+将github中已有项目从本地上传更新
利用git把本地项目传到github中 1.打开git bash命令行,进入到要上传的项目中,比如Spring项目,在此目录下执行git init 的命令,会发下在当前目录中多了一个.git的文件夹( ...
随机推荐
- python向mysql中存储JSON及Nodejs取出
虽然把JSON数据存入mysql也是比较蛋疼,但是相比使用Nodejs嵌套处理多个mysql查询并拼接返回数据也算是没mongo时的一个折中方案了. 我使用python拼接了一个json格式的字符串, ...
- UVA Graph Coloring
主题如以下: Graph Coloring You are to write a program that tries to find an optimal coloring for agiven ...
- 安装WindowsXP操作系统(Ghost版) - 初学者系列 - 学习者系列文章
Windows XP的Ghost版是经典的版本.因为XP相对较小些,所以用Ghost起来速度比较快.如果Ghost那个Windows 7之类的,速度就慢了.Windows 7建议还是安装比较快.下面简 ...
- .NET : 使用代码性能分析工具
NET : CLR Profiler的使用 经常讲课的时候会提到值类型和引用类型,也会提到如何查看它们的大小.多次被朋友问到,如何真的想要知道到底每个方法分配了多少内存之类的问题,其实这可以通过CLR ...
- FileWriter字符输出流和FileReader字符输出流
//FileWriter public class FileWriterDemo { //字符流:适用于文本文件,以字符为单位进行操作,经常和缓冲流一起使用 /** * 字符流操作步骤: * 1. ...
- MVC Filter 实现方式和作用范围控制
Asp.Net MVC Filter 实现方式和作用范围控制 MVC中的Filte 简单又优雅的实现了AOP ,在日志,权限,缓存和异常处理等方面用的比较多.但本文不是讨论Filter这些功能点,而是 ...
- Ajax提交底层原型XMLHttpRequest
相信接触过ajax的都觉得其post,get提交很方便,那么他是怎么实现的呢?基于此我们就不得不谈到js中的XMLHttpRequest对象. 其中w3c中是这样解释的: XMLHttpRequest ...
- 工作日志(DJ)
ajax传参: $.post("MAIN_JSHandler.ashx", { "retInfoCode&q ...
- HtmlParser的使用-爬虫学习(三)
关于这个HtmlParser的学习资料,网上真的很匮乏,这个好用的东西不要浪费啊,所以我在这里隆重的介绍一下. HtmlParser是一个用来解析HTML文件的Java包,主要用于转换盒抽取两个方面. ...
- [Usaco2007 Jan]Running贝茜的晨练计划[一般DP]
Description 奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运动方式是每天进行N(1 <= N <= 10,000)分钟的晨跑.在每分钟的开始,贝茜会选择下一 ...