前言
最近要求写一个swift项目,这对于swift乃至objc都非常不了解的我来说是一个极大的挑战。前几天组长建了个项目,要求配置cocoapod来进行项目管理。于是我花了将近一天来配置。tc这堵墙真的挺麻烦的。如果已经能够全局翻墙(包括终端)的,请直接参考这篇文章,如果还没有成功翻墙的,请务必阅读完全文再进行配置。因为里面可能涉及到一些对错误配置的纠正。
简单介绍cocoapods
cocoapods是在swift和objective-c中用来进行依赖管理的。它是通过Ruby进行安装。Mac上有自带的Ruby。所以成功翻墙的只需要一条语句sudo gem install cocoapods
就可以安装。
安装成功后在项目目录下创建podfile并执行pod install
就可以成功完成项目依赖管理啦
具体情况将在后文继续介绍
详情请参考官方网站
从homebrew开始
为什么要从homebrew开始呢?因为自从MAC操作系统升级到Sierra之后,很多原有的配置出现了或多或少的不兼容的现象。通过homebrew对ruby进行更新可以避免后面的下载和升级等等操作不会报错。这一步可以省略。出现此种报错时请参考该教程。
homebrew官网:https://brew.sh/
安装homebrew
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent...)"
更新homebrew
$ brew update
homebrew被墙以后brew的更新出奇的慢,所以我放弃了更新转向重新安装
卸载brew
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent...)"
第二种安装brew的方法(一般安装在/usr/local目录下)
$ cd /usr/local
$ mkdir homebrew && curl -L https://github.com/Homebrew/b... | tar xz --strip 1 -C homebrew
至此homebrew就重新配置完毕了,并重新安装一下ruby
$ brew install ruby
ruby
cocoapods主要是通过ruby的gem安装更新。我们需要先将ruby替换成国内的镜像,不然被墙速度感人。ruby最近出了ruby china官方镜像,需要先删去原来的镜像,再添加新的镜像
$ gem sources --remove https://rubygems.org/ //等有反应之后再敲入以下命令
$ gem sources -a https://gems.ruby-china.org/
检查一下镜像
$ gem sources -l
*** CURRENT SOURCES ***
https://gems.ruby-china.org/
使用gem安装cocoapods
$ sudo gem install cocoapods
如果出现权限问题,则使用下面的语句
$ sudo gem install -n /usr/local/bin cocoapods
cocoapods配置
cocoapods在第一次运行时会自动执行指令pod setup
,被墙的话这个过程会非常慢,而且通常会以超时连接中断报错为结尾。这个部分我折腾了很久,试了很多种教程,终于找到了一个成功的。我的方法是这样的:
更改pod初始化的git地址
这一步非常重要!!!在很多的教程中都只是让更换下载源,但其实在pod setup
的时候它还是会更改.git文件中git的url为原来的源并重新初始化。被折磨了很多次,网速本来就很感人了T T。而且语句pod repo add master https://git.oschina.net/akuandev/Specs.git
在当前并不能有效执行,会要求你必须通过pod setup
执行初始化
$ cd /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/command #此处的cocoapods-1.1.1处填入你的当前版本
$ sudo vim setup.rb
#单击'a',进入编辑模式
def run
UI.section 'Setting up CocoaPods master repo' do
if master_repo_dir.exist?
set_master_repo_url
set_master_repo_branch
update_master_repo
else
add_master_repo
end
end
UI.puts 'Setup completed'.green
end
// 省略一些代码 ....
def self.read_only_url
'https://github.com/CocoaPods/Specs.git'
//如果 pod repo add master https://git.coding.net/CocoaPods/Specs.git 这句失败的话
//可以尝试直接把这个url改为你要更换的新的git 地址
//此处为'https://code.aliyun.com/Magi/CocoaPods'
end
更改结束后按esc退出,输入:wq!敲回车保存修改
再执行指令
$ git clone https://code.aliyun.com/Magi/CocoaPods ~/.cocoapods/repos/master
$ pod setup
这个过程比较漫长,因为github本身就慢,而且Spec.git的文件数量甚多(1069459+)),导致300+m的git库特别难下载成功。要保证流畅的网络连接
至此cocoapods已经完全安装完成了,鉴于每一次pod install
的时候都会检查cocoapods的spec.git是否是最新的,可以使用指令pod install --verbose
加快安装
cocoapods快速上手
cd进入需要创建podfile的项目的目录
$ pod init
$ touch podfile
具体如何编辑podfile请参考cocoapods官网
下面为一个podfile示例
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
#一定要添上这一行,否则还是会从https://github.com/CocoaPods/Specs.git下载
source 'https://code.aliyun.com/Magi/CocoaPods.git'
#此处填写项目名称
target ‘projectName’ do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
pod 'AFNetwork'
end
安装项目依赖文件
$ pod install --verbose --no-repo-update
可以运行项目啦!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。