在CocoaPods上创建自己iOS程序的依赖管理
来源:互联网 发布:网狐6603手机游戏源码 编辑:程序博客网 时间:2024/06/05 05:50
一、github上创建开源项目
GitHub是目前使用最广的分布式项目管理软件。
下面是如何从零开始,将自己的项目放到GitHub上面,并能够像SVN那般update和commit。
1、到https://github.com上建立自己的账号
2、按照的指引,创建第一个代码仓库
“Repository name”可以理解为项目名称。
※现在的Private权限是收费的,所以只能创建Public权限的仓库。
※Private权限,表示只有指定用户可以查看/下载/commit这些代码;而Public权限,则表示所有人都能够看到这些代码并进行下载,但只有你指定的用户才能够进行commit。
3、安装和配置git
mac已经带有git,查看版本
[root@localhost ~]# git --versiongit version
2.5.4(Apple Git-61)
接着就要设置用户名和Email了,Email最好和注册时候的一样。$ git config --global user.name
"Your Name Here"
# Sets the default name for git to use when you commit$ git config --global user.email
"your_email@example.com"
# Sets the default email for git to use when you commit
上面的内容都写在配置文件~/.gitconfig里了
恭喜,到这里,基本Git和GitHub都配置好了!
4、版本库初始化
如果是从头创建版本库,可以采用先克隆,建立提交数据,最后再通过推送完成GitHub版本库的初始化。
步骤如下
(1) 克隆版本库:
git clone https://github.com/skylinbaiyi/HelloWorld.git
Cloning into 'HelloWorld'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
Checking connectivity... done.
克隆的方式,本地已经存在一个.git文件夹,就不需要执行 git init 了
(2) 修改文件README.md文件:
创建Repository时,如果选择创建README.md文件的话,github上已经存在该文件,如果没有,则手动创建
$ git add README
# Stages your README file, adding it to the list of files to be committed
(3) 提交
git add .
#会把当前路径下的所有文件,添加到待上传的文件列表中
$ git commit -m
'first commit'
# Commits your files, adding the message "first commit"
(4) push
这里所有的更改都只是在本地的, Push之后才会提交到GitHub保存:
git remote add origin https://github.com/skylinbaiyi/HelloWorld.git
git push origin master
(5)给项目加入一个tag。以便pod能自动识别
gittag -a0.0.1 -m"Tag release 0.0.1”
git push —tags
二、为自己的项目添加cocoaPods支持
1、注册
trunk需要CocoaPods 0.33版本以上,用pod --version
命令查看版本,如果版本低,需要升级:
sudo gen install cocoapods
pod setup
更新完成后,下一步是注册trunk
pod trunk register test@163.com 'test' --description=' ' --verbose
有的地方提示,这一步需要自备梯子,否则就会出现注册失败的问题,经我这里测试,公司网络目前不需要翻墙
注册后CocoaPods会给你的邮箱发送验证链接,点击后就注册成功了,可以用pod trunk me
命令查看自己的注册信息:
上面的命令是我注册时使用的,你需要把邮箱和名字以及描述替换成你的,加上--verbose
可以输出详细debug信息,方便出错时查看。
- Name: Yang Xiaoyu
- Email: yulingtianxia@gmail.com
- Since: May 25th, 20:27
- Sessions:
- May 25th, 20:27 - September 30th, 22:41. IP: 23.228.209.171
Description: macbook pro
上面是我的注册信息,CocoaPods不通过密码来验证用户,而是通过一个session token。
2、部署你的Pod
首先你需要建立一个podspec文件,这是我的podspec文件:
Pod::Spec.new do |s|
s.name = "YXYNumberAnimationLabel"
s.version = "1.0.1"
s.summary = "一个可以动起来的数字Label"
s.description = <<-DESC
通过设置数字变化的插值来展现动画效果
DESC
s.homepage = "https://github.com/yulingtianxia/YXYNumberAnimationLabel"
s.license = 'MIT'
s.author = { "YangXiaoyu" => "yulingtianxia@gmail.com" }
s.social_media_url = "http://twitter.com/yulingtianxia"
s.source = { :git => "https://github.com/yulingtianxia/YXYNumberAnimationLabel.git", :tag => s.version.to_s }
s.platform = :ios, '6.0'
s.requires_arc = true
s.source_files = 'YXYNumberAnimationLabel/*'
s.frameworks = 'Foundation', 'UIKit'
#s.private_header_files = 'Classes/ios/private/*.h'
#s.dependency 'FLKAutoLayout', '~> 0.1'
end
在验证和上传你的podspec文件到trunk之前,需要将你的源码push到Github上,tag一个版本号并发布一个release版本,这样podspec文件中的s.source
的值才能是准确的:
git add -A
git commit -m "Release 1.0.1."
git tag '1.0.1'
git push --tags
git push origin master
这两条命令是为pod添加版本号并打上tag:
set the new version to 1.0.1
set the new tag to 1.0.1
pod trunk push命令做了如下三个工作:在你podspec文件下的路径运行pod trunk push YXYNumberAnimationLabel.podspec
命令,同样需要翻墙梯子自备,别忘了将YXYNumberAnimationLabel.podspec
替换成你的podspec文件名。
- 验证你本地的podspec文件(你也可以用
pod spec lint
命令来验证) - 上传你的podspec文件到trunk
- 将你的podspec文件转化成trunk需要的JSON文件
如果部署成功,CocosPods会在Twitter上@你
就像文章最开始的架构图描述的那样,你在trunk中的操作依然会在CocoaPods/Specs仓库中更新。以后再做更改时只需要更新版本号然后通过trunk来提交,不用向CocoaPods/Specspull request并等待审核和merge了。
运行pod setup
来更新你的Pods依赖库tree后,再使用pod search YXYNumberAnimationLabel
命令来查找刚刚加入的名字叫YXYNumberAnimationLabel
的依赖库:
-> YXYNumberAnimationLabel (1.0.1)
一个可以动起来的数字Label
pod 'YXYNumberAnimationLabel', '~> 1.0.1'
- Homepage: https://github.com/yulingtianxia/YXYNumberAnimationLabel
- Source: https://github.com/yulingtianxia/YXYNumberAnimationLabel.git
- Versions: 1.0.1, 1.0.0 [master repo]
注意事项:
(1) 验证spec文件的有效性:
pod spec lint 文件名 验证resp上的文件
pod lib lint 文件名 这是只是验证本地文件
(2) 添加 --verbose 可以显示详细信息,便于查看问题
pod trunk push Bugrpt.podspec --verbose
参考地址:
1. podspec文件的格式参考广告文档: https://guides.cocoapods.org/syntax/podspec.html#specification
2. Cocoapods降低版本及卸载:https://www.meetrue.com/archives/133
3. 用CocoaPods做iOS程序的依赖管理
4. 如何编写一个CocoaPods的spec文件
三、提交 podspec 文件到github的方法对比
1、旧方法
2、新方法
里面有个log信息提示有个beta版本可以使用,这个千万不要下载,可能会有很多问题,还是老老实实使用最新的正式版本才靠谱
四、问题总结
1. github的账号密码问题
如果有多个github账号,在进行账号切换提交项目时,会出现没权限的问题
2. 路径不对
Unable to interpret the specified path as a podspec
原因是没有tag标记,代码push完全后,添加一个tag,这个tag需要和podspec文件的version字段对应
3. 找不到branch版本
我们添加tag时,写的是1.0.2,需要加上字母“v”, v1.0.2
4. 编码问题
5. 库的路径问题
6. 库的头文件问题
7. model找不到
- 在CocoaPods上创建自己iOS程序的依赖管理
- cocoaPods做iOS程序的依赖管理
- 【iOS】用CocoaPods做iOS程序的依赖管理
- 使用CocoaPods来做iOS程序的包依赖管理
- 使用CocoaPods来做iOS程序的包依赖管理
- 使用CocoaPods来做iOS程序的包依赖管理
- 使用CocoaPods来做iOS程序的包依赖管理
- 使用CocoaPods来做iOS程序的包依赖管理
- 使用CocoaPods来做iOS程序的包依赖管理
- 使用CocoaPods来做iOS程序的包依赖管理
- 使用CocoaPods来做iOS程序的包依赖管理
- 使用CocoaPods来做iOS程序的包依赖管理
- iOS程序依赖管理的工具——CocoaPods
- iOS程序依赖管理的工具——CocoaPods
- 使用CocoaPods来做iOS程序的包依赖管理
- 使用CocoaPods来做iOS程序的包依赖管理
- 使用CocoaPods来做iOS程序的包依赖管理
- 使用CocoaPods来做iOS程序的包依赖管理
- Lrucache
- grep命令查找当前目录下包含某个字符串的所有文件
- 把.png 图片放到drawable-v21 导致的错误(在API 21 以下的手机运行时)
- 【LVL1_7_c】【思考题】【6】fprintf(),fscanf(),fgets(),以及fputs函数的作用.
- Java反射机制
- 在CocoaPods上创建自己iOS程序的依赖管理
- 常见反调试方法以及特征代码
- android硬件加速(View.LAYER_TYPE_SOFTWARE)与GridView for ScrollView 显示问题
- 程序员生存定律--管理向左,技术向右
- 键盘增加监听,UIButton随键盘位移
- SSL协议和TLS协议
- How to Install PHP intl extension on OS X
- 重定向和转发的区别
- java+SpringMvc——查询数据,以树形结构显示