利用Github和CocoaPods搭建私人Pod开发环境

一直关注IOS开发多年,开始今天的教程。

现在的我的配置如下:

– Mac OSX 10.11.0

– Git (ie: GitHub for Mac Desktop)

– XCode 7.3.1

– CocoaPods 1.0.0

解决CocoaPods版本过低或升级问题

进入终端输入指令

$ pod install

#[!] The version of CocoaPods used to generate the lockfile (0.39.0) is higher than the version of the current executable (0.35.0). Incompatibility issues may arise.

告知版本太低了,执行更新cocoapod版本指令

$ gem update cocoapod

#Nothing to update

检查淘宝服务器地址为https协议,如果是http请改成https

$ gem sources -r http://ruby.taobao.org/

#http://ruby.taobao.org/ removed from sources

$ gem sources -a https://ruby.taobao.org/

#https://ruby.taobao.org/ added to sources

使用sudo来执行操作,因为操作是系统文件夹加上权限操作

$ sudo gem update --system

#Updating rubygems-update

#Fetching: rubygems-update-2.5.1.gem (100%)

#Successfully installed rubygems-update-2.5.1

#Parsing documentation for rubygems-update-2.5.1

再执行部署cocoapod指令,时间会慢,因为需要执行把所有的cocoapods repo全部download到本地的操作,应该有100M+吧。

$ pod setup

#Setting up CocoaPods master repo

#Setup completed

#[!] CocoaPods was not able to update the `master` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`

⚠️注意到最后一句,我们在终端继续敲打指令更新repo,耐心等待⌛️..

$ pod repo update --verbose

#Updating spec repo `master`

#$ /usr/bin/git pull --ff-only

#From https://github.com/CocoaPods/Specs

#a0baa68..9a14a05  master    -> origin/master

error: Your local changes to the following files would be overwritten by merge:

#CocoaPods-version.yml

#Specs/1PasswordExtension/1.0.0/1PasswordExtension.podspec.json

#Specs/1PasswordExtension/1.0.1/1PasswordExtension.podspec.json

#Specs/AKUTestKit/1.1.2/AKUTestKit.podspec.json

#Specs/ALCore

#Aborting

#Updating a5c6b67..9a14a05

#[!] CocoaPods was not able to update the `master` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`

这部分问题解决了,现在可以使用pod install 和 pod search xx 进行项目pod管理了。

过度到git版本管理

为了解决大量git指令的晦涩,使用GitHub for Mac Desktop解决大部分git版本管理的困难。

创建一个代码仓库,在这个之前需要一个账号和密码,填写必要的仓库地址和相关信息就一直Next下去吧。

创建git仓库页面

完成创建仓库后迫不及待把自己的测试工程成发布到git上面,这里我用GitHub for Mac Desktop软件,可以很轻松完成版本的发布工作,这里就不一一赘述了。

git项目首页

配置podspec文件

最后一步配置podspec文件,这个文件描述你要pod trunk到CocoaPods的工程,⚠️CocoaPods 需要0.33版本以上的,用 pod --version 查看,如果版本低,需要更新,之前有介绍更新方法。

pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air'

你注册的时候需要替换邮箱和名字,然后顺利的话你会收到一份邮件,需要点击验证。通过下面指令能验证你的注册信息。

pod trunk me 

显示你当前的注册信息

OK到此为为止我们已经在Cocoapods关联相关信息,cd 进入已经上传到GitHub项目的目录下,执行下面指令创建podspec文件。

pod spec create HZWebViewController

会在当前目录下生成 HZWebViewController.podspec 文件,然后我们用文本编辑该文档。

# Be sure to run `pod lib lint HZWebViewController.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        = "HZWebViewController"

s.version      = "0.0.1"

s.summary   = "play with cocoaPods"

s.description  = <<-DESC

I play with cocoaPods where this one project

DESC

s.homepage  = "https://github.com/githubAmount/HZWebViewController"

s.license  = "MIT"

s.license = { :type => "MIT", :file => "LICENSE" }

s.author = { "suger" => "gjw_2007@163.com" }

s.platform = :ios, '7.0'

s.source  = { :git =>"https://github.com/githubAmount/HZWebViewController.git", :tag => s.version.to_s }

s.source_files  = "MyTestCocoaPods/MyObject/**/*.{h,m}"

s.public_header_files = "MyTestCocoaPods/MyObject/**/*.h"

s.requires_arc = true

s.frameworks = "UIKit", "Foundation"

#s.dependency 'Masonry', '~> 0.6.3'

end

终于编写完成文件后,立马在终端输入下列指令本地验证

$pod lib lint

解决Error和Warming,比如 " 写成了 “ 等等诸如此类问题。

验证远程库是否有效。

$pod spec lint

看到输出如下内容就成功了

HZWebViewController.podspec passed validation.

验证完毕后现在就要把自己工程push到cocoapods仓库里,执行下面的代码

$pod trunk push

在push 的时候会报错如下图所示:

问题出现会报找不到brach版本0.0.1,这也不难怪因为我们还需要对Github的代码做版本管理,需要对当前的代码分支出一个0.0.1并且打上tag。

🏷️那就百度如何给自己的仓库打tag并且提交置Github上,关键代码如下:

$git tag -a 创建版本 -m "v0.0.1"

#git tag -a TagName -m "vTagNumber"

$git push --tags

好吧问题又来了,此时终端提示输入Github的账号和密码,我怎么输入都验证过不了,一直报不存在的帐户和密码(排除账号密码错误的情况)。我怀疑Github不再支持输入账号密码访问远程仓库的方法,万念俱灰啊~

继续百度中⌛️...

还有另外一种方法不用每次访问远程仓库输入Github账号和密码的方法,这就是要配置SSH,通过本地生成一串RSA访问。打开终端输入以下指令

$ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

#Creates a new ssh key, using the provided email as a label

#Generating public/private rsa key pair.

下面有个三个提示建议用三个回车对应

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

Enter passphrase (empty for no passphrase): [Type a passphrase]

Enter same passphrase again: [Type passphrase again]

此时在你的/Users/you/.ssh路径下会生成一串RSA,你需要把你私钥加入你的笔记本SSH Session上,执行下面指令

#start the ssh-agent in the background

$eval "$(ssh-agent -s)"

Agent pid 59566

$ ssh-add ~/.ssh/id_rsa

把公钥加入Github的帐户设置中,用txt打开id_rsa.pub文件把里面的内容Copy,复制到下面这个地方

保存后在终端输入以下指令

$ssh -T git@github.com

#Attempts to ssh to GitHub

会有下面的提示,全部yes吧,验证你的ssh

The authenticity of host 'github.com (192.30.252.1)' can't be established.

RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.

Are you sure you want to continue connecting (yes/no)?

The authenticity of host 'github.com (192.30.252.1)' can't be established.

RSA key fingerprint is nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.

Are you sure you want to continue connecting (yes/no)?

最后验证成后会提示以下:

Hi username! You've successfully authenticated, but GitHub does not

provide shell access.

OK,现在我们重新回到打标签的步骤,重新吧标签打到我们远程仓库上,此时应该顺利打上0.0.1标签了~

打完标签记得使用Github的GUI打出一份分支记得也是0.0.1版本。

此时再回到pod trunk push 步骤重新执行一遍。

如果你人品比较好的话,此时你的项目可以顺利发布到cocoapods上面了,记得到这里来认领你的项目哦https://trunk.cocoapods.org/claims/new

此时你再使用pod search yourProject 应该是能搜索使用了啊~~~

如果有任何问题请邮我,地址gjw_2007@163.com,thx.

(完)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容