博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift cocoapods 我的安装之旅
阅读量:6038 次
发布时间:2019-06-20

本文共 3061 字,大约阅读时间需要 10 分钟。

前言

最近要求写一个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官网:

安装homebrew

$ /usr/bin/ruby -e "$(curl -fsSL )"

更新homebrew

$ brew update

homebrew被墙以后brew的更新出奇的慢,所以我放弃了更新转向重新安装

卸载brew

$ /usr/bin/ruby -e "$(curl -fsSL )"

第二种安装brew的方法(一般安装在/usr/local目录下)

$ cd /usr/local

$ mkdir homebrew && curl -L | tar xz --strip 1 -C homebrew

至此homebrew就重新配置完毕了,并重新安装一下ruby

$ brew install ruby

ruby

cocoapods主要是通过ruby的gem安装更新。我们需要先将ruby替换成国内的镜像,不然被墙速度感人。ruby最近出了,需要先删去原来的镜像,再添加新的镜像

$ 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请参考

下面为一个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://rvlhx.baihongyu.com/

你可能感兴趣的文章
golang gob 有什么优势? gob/protobuf/json/xml 效率对比,benchmark 压力测试
查看>>
RxSwift學習教程之基礎篇
查看>>
分析轮子(七)- RandomAccess.java
查看>>
Zabbix历史数据库迁移 及分区
查看>>
Column 'parent_id' specified twice
查看>>
了解互联网活动咨讯
查看>>
linux usb安装介质制作 create-a-usb-stick-on-windows
查看>>
Oracle查前几条记录方法
查看>>
使用delphi 开发 web(一) webbroke 简介
查看>>
移动终端网页游戏移植研发框架【客户端战斗系统】
查看>>
Hammock for REST
查看>>
修正 THashedStringList 在插入和 PutObject 时的速度缺陷
查看>>
线程间通信
查看>>
Mysql存储引擎
查看>>
HDU-4318 Power transmission 模型转化
查看>>
asp.net实现视频在线播放
查看>>
理解 JavaScript 闭包
查看>>
Eclipse中如何更改字体大小?
查看>>
Java学习笔记(7)——输入输出
查看>>
wcf 基础教程 契约 Contract 数据契约DataContract序列化前身 XmlSerializer xml序列化
查看>>