文档章节

IOS-安装使用Cocoapods中遇到的坑

C
 CocoaGxh
发布于 2017/02/10 15:00
字数 1585
阅读 16
收藏 0
点赞 0
评论 0
  • 基本的步骤是 gem install cocoapods -> pod setup -> pod init -> edit Podfile -> pod install -> open xcworksapce (期间出现对应的问题 就对应解决)

安装cocoapods

为了防止gem安装更新失败,因此先替换为国内的淘宝的镜像源,否则在天朝的网络限制中会很慢很慢

gem sources --remove https://rubygems.org/ //等有反应之后再敲入以下命令 
// 更新为 ruby-china的镜像, 淘宝镜像已经停止
gem sources -a https://gems.ruby-china.org/

检查一下看看

gem sources -l
*** CURRENT SOURCES *** https://gems.ruby-china.org/

使用gem安装cocoapods

sudo gem install cocoapods  //1.0正式版本已经发布,规则有一点的变化

如果gem出现错误
Unable to resolve dependencies: cocoapods requires cocoapods-core (= 0.35.0), claide (~> 0.7.0), xcodeproj (~> 0.20.2), cocoapods-downloader (~> 0.8.0)

先更新gem然后重新开始

sudo gem update --system  //没什么问题就不要更新这个了,容易出现问题,更新后请重新设置下镜像源

sudo gem install cocoapods 出现 Operation not permitted - /usr/bin/xcodeproj

sudo gem install -n /usr/local/bin cocoapods

//如果还有问题 请看下面

设置pod源码(初始化cocoapods) -- 重要问题都在这

如果pod setup 可以将github的代码下载得动,那你就不用去折腾什么oschina源了

pod setup //会将Specs.git的代码下载到~/.cocoapods/repo/master
//如果还是太慢,尝试下
pod install --verbose
  • 如果setup很慢甚至卡住 (都是因为天朝的网络原因)

    为了pod install / update 的时候加快速度,specs仓库镜像换成coding上的镜像或者是 oschina 上的镜像所以建议先更换数据源

pod repo remove master
//coding 上有每日更新的,建议使用这个
pod repo add master https://git.coding.net/CocoaPods/Specs.git

//或者用oschina,但是https 好像有问题,一直是403,所以用ssh的方式,这里需要到官网去配置ssh key
pod repo add master https://git.oschina.net/akuandev/Specs.git

如果提示失败或者setup不成功,方案有两种:

  • 1) 手动将代码clone下来 【该方法比较有效】

    • 出现 [!] To setup the master specs repo, please run pod setup.
git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master

pod setup  //务必在手动下载代码后执行一次,执行后 Setup completed

//在执行
pod install --verbose --no-repo-update //避免去更新了

如果使用oschina 的 https git clone不成功的话,建议到git.oschina.net中添加ssh key,换ssh方式下载源码

git clone git@git.oschina.net:akuandev/Specs.git  ~/.cocoapods/repos/master
  • 2) 降到0.39,setup之后再升级到1.0吧

    (总得来说,好像有些时候也不管用了,pod addrepo 不行)

sudo gem uninstall cocoapods  //有多个的话,就全部按提示删除
sudo gem install cocoapods -v 0.39

Cocoapods 具体使用方法:

直接在需要加入cocoapods项目的根目录新建Podfile文件

$pod init  //会生成模板的Podfile文件
//或者手动创建
$touch Podfile

编辑 Podfile文件

platform :ios
pod 'AFNetworking'

单独某个target依赖pod

在1.0中要求必须指定target了

target 'XXXTarget' do
    pod 'AFNetworking'
    pod 'Masonry'
end

然后再执行 pod setup 即可以后每次更改 Podfile文件 则执行 pod update 即可如果在初始化的时候出现:如果安装后出现

[!] The platform of the target `Pods` (iOS 4.3) may not be compatible with `Reachability (3.2)` which has a minimum requirement of iOS 6.0 - OS X 10.8.

则修改 Podfile 为

platform :ios, '6.0'

update 后如果出现大量提示

错误 target overrides the `OTHER_LDFLAGS`...

则项目中Building setting 设置中 搜索Other Linker Flags的地方,添加一条

`$(inherited)`

以后打开项目点击xcworksapce后缀的文件,不要点击原来的项目文件

打开

  • 至此,已经结束,愉快地使用吧

出现问题总结:

如果 pod update / pod install 命令执行过慢

(首次运行的时候不要)执行pod install还是pod update都卡在了Analyzing dependencies不动原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。
加参数的命令如下:

pod install --verbose --no-repo-update
pod update --verbose --no-repo-update

gem install

出现 ERROR: While executing gem ... (Gem::FilePermissionError)

解决方法:

sudo gem install -n /usr/local/bin  cocoapods

或者:

$ mkdir -p $HOME/Software/ruby
$ export GEM_HOME=$HOME/Software/ruby
$ gem install cocoapods
//打印
$ export PATH=$PATH:$HOME/Sofware/ruby/bin
$ pod --version

或者重新安装rvm

//Install Homebrew:(已经装过就不用了)
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
// Install RVM:
$ \\curl -sSL https://get.rvm.io | bash -s stable --ruby
$ gem install cocoapods

出现 Invalid \Podfile file

[!] Invalid `Podfile` file: incompatible character encodings: UTF-8 and ASCII-8BIT. Updating CocoaPods might fix the issue.

这是编码的问题,有两种原因,
1.你的设备确实不支持utf8,
2.你本身录入文本有问题查看编码

localhost:xib cty$ locale

执行命令后出现

LANG="zh_CN.UTF-8"LC_COLLATE="zh_CN.UTF-8"LC_CTYPE="zh_CN.UTF-8"LC_MESSAGES="zh_CN.UTF-8"LC_MONETARY="zh_CN.UTF-8"LC_NUMERIC="zh_CN.UTF-8"LC_TIME="zh_CN.UTF-8"LC_ALL=

发现都是zh,强制设置一下

localhost:xib cty$ export LC_ALL=en_US.UTF-8 localhost:xib cty$ export.UTF-8

再检查一下

LANG="en_US.UTF-8"LC_COLLATE="en_US.UTF-8"LC_CTYPE="en_US.UTF-8"LC_MESSAGES="en_US.UTF-8"LC_MONETARY="en_US.UTF-8"LC_NUMERIC="en_US.UTF-8"LC_TIME="en_US.UTF-8"LC_ALL="en_US.UTF-8"

好像好了,继续pod install吧

[!] Invalid `Podfile` file: incompatible character encodings: UTF-8 and ASCII-8BIT. Updating CocoaPods might fix the issue.

问题依然把所有可能的配置都试一遍

gem install rails

然后

gem install rdoc

然后

gem install nokogiri --no-ri --no-rdoc

这些都设置完一般不会出现问题了,再有问题,可能是文本录入的问题2的解决办法,如果你是手动输入的这个需要注意,copy别人的也要检查一下打开键盘偏好设置设置单引号格式,当然冒号我还没找到怎么设置,一般错误会提示给你哪写错了这里不再提示utf8的错误了,输入法的错误,但是我切换了半天设置了半天还是没解决冒号,只能吧

The `master` repo requires CocoaPods 0.18.1 -

这个错误是在升级阶段出现的,升级

gem update cocoapods

使cocopods管理开源库编译出现Library not found for -lPods问题的解决方法

  • 点击菜单栏上 Product > Edit Scheme
  • 选择Build
  • 加入Pods static library, 并且保证 pods 处于第一个位置
  • Clean and build 项目

如果在导入头文件的时候发现无法自动补全,或者PCH文件中提示File not found

在User headers search path(在Project 和 Target 都修改)中

${SRCROOT} --右侧选择recursive

Jenkins 脚本打包中出现 uft-8问题

[33mWARNING: CocoaPods requires your terminal to be using UTF-8 encoding.

在pod install 之前执行

export LC_ALL="en_US.UTF-8"
pod install --no-repo-update

本文转载自:http://www.jianshu.com/p/32d9cfb91471

共有 人打赏支持
C
粉丝 0
博文 3
码字总数 0
作品 0
南京
填坑系列之更新CocoaPods

我们都知道在iOS开发中,经常会使用到第三方库,CocoaPods是一个负责管理iOS项目中第三方开源库的工具,使用非常广泛。 CocoaPods的具体使用方法网上有很多,这里不再赘述。在使用pod insta...

充电实践 ⋅ 05/05 ⋅ 0

react-native项目集成到现有原生项目

使用cocoapods集成react-native到现有原生项目 一、可参考react-native官网:http://reactnative.cn/docs/0.49/integration-with-existing-apps.html#content 二、集成步骤: 设置项目目录结...

Peter_Zhang ⋅ 06/12 ⋅ 0

构建你的Office 365开发环境 - IOS版

博客地址:http://blog.csdn.net/FoxDave 本文主要介绍在开始创建应用之前,如何构建你的Office 365开发环境去调用Office 365 API。 构建Office 365开发环境包含了三个一次性的工作: 下载开...

justinliu927 ⋅ 04/16 ⋅ 0

CocoaPods安装遇到的问题

--------------- 原文地址:传送门 第一步:sudo gem update --system 如果失败则用这条语句 sudo gem install -n /usr/local/bin cocoapods 如果是最新版的会出现Latest version currently ...

qq_28379951 ⋅ 04/11 ⋅ 0

iOS 调试小工具 - DotzuX

DotzuX 是一款 iOS 调试小工具。 预览 安装 CocoaPods platform :ios, '8.0'use_frameworks! target 'YourTargetName' do pod 'DotzuX', :configurations => ['Debug']end Carthage github "......

liman123 ⋅ 04/24 ⋅ 0

ios-项目组件化(准备工作)

 最近公司业务不是很忙,自己抽出时间对现有的开发项目准备进行组件化模式开发;由于公司项目架构在开始搭建的时候没有用到cocoapods进行三方包管理,三方包的工程环境都是需要手动去完成配...

Peter_Zhang ⋅ 05/23 ⋅ 0

iOS高仿微信、仪表盘、图片标注图片滤镜、高斯模糊、上拉加载、下拉刷新等源码

iOS精选源码 Swift-图片画框标注(http://www.code4app.com/thread-29884-1-1.html) Swift版的上拉加载, 下拉刷新控件(一句话集成, 超级易用)(http://www.code4app.com/thread-29885-1-1.html...

sunnyaigd ⋅ 05/22 ⋅ 0

玩转iOS开发《创建CocoaPods开发库》

玩转iOS开发《创建CocoaPods开发库》 想了想, 发现自己好久都没有写新的文章了, 还有一些朋友跑过来说我的掘金好久没更新了, 其实不是的, 我一直在维护并更新玩转iOS开发:自己造的轮子《CLU...

CainLuo ⋅ 05/31 ⋅ 0

iOS原生混合RN开发最佳实践

做过原生iOS开发或者Android开发的同学们肯定也都了解Hybrid,有一些Hybrid的开发经验,目前我们企业开发中运用最广泛的Hybrid App技术就是原生与H5 hybrid,在早期的时候,可能部分同学也接...

光强 ⋅ 05/16 ⋅ 0

iOS开发-登录界面开发(1)Text控件的使用-Swfit4.1_Xcode9.3.1

实现效果:   1.打开app的效果图:   2.输入vip号码后的效果图 1.让我们从零开始,现在AppStore搜索xcode并安装 2.打开xcode,点击"Creat a new Xcode project",点击"Single View App"...

iwanghang ⋅ 05/30 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CENTOS7防火墙命令记录

安装Firewall命令: yum install firewalld firewalld-config Firewall开启常见端口命令: firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-po......

cavion ⋅ 57分钟前 ⋅ 0

【C++】【STL】利用chromo来测量程序运行时间与日志时间打印精确到微秒

直接上代码吧,没啥好说的。头疼。 #include <iostream>#include <string>#include <ctime>#include <sstream>#include <iomanip>#include <thread>#include <chrono>using ......

muqiusangyang ⋅ 今天 ⋅ 0

Mac环境下svn的使用

在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简...

故久呵呵 ⋅ 今天 ⋅ 0

破解公司回应苹果“USB限制模式”:已攻破

本周四,苹果发表声明称 iOS 中加入了一项名为“USB 限制模式”的功能,可以防止 iPhone 在连接其他设备的时候被破解,并且强调这一功能并不是针对 FBI 等执法部门,为的是保护用户数据安全。...

六库科技 ⋅ 今天 ⋅ 0

MyBtais整合Spring Boot整合,TypeHandler对枚举类(enum)处理

概要 问题描述 我想用枚举类来表示用户当前状态,枚举类由 code 和 msg 组成,但我只想把 code 保存到数据库,查询处理,能知道用户当前状态,这应该怎么做呢?在 Spring 整合MyBatis 的时候...

Wenyi_Feng ⋅ 今天 ⋅ 0

synchronized与Lock的区别

# <center>王梦龙的读书笔记第一篇</center> ## <center>-synchronized与Lock的区别</centre> ###一、从使用场景来说 + synchronized 是能够注释代码块、类、方法但是它的加锁是和解锁使用一......

我不想加班 ⋅ 今天 ⋅ 0

VConsole的使用

手机端控制台打印输出,方便bug的排查。 首先需要引入vconsole.min.js 文件,然后在文件中创造实例。就能直接使用了。 var vConsole = new VConsole(); vConsole的文件地址...

大美琴 ⋅ 今天 ⋅ 0

Java NIO之字符集

1 字符集和编解码的概念 首先,解释一下什么是字符集。顾名思义,就是字符的集合。它的初衷是把现实世界的符号映射为计算机可以理解的字节。比如我创造一个字符集,叫做sex字符集,就包含两个...

士别三日 ⋅ 今天 ⋅ 0

Spring Bean基础

1、Bean之间引用 <!--如果Bean配置在同一个XML文件中,使用local引用--><ref bean="someBean"/><!--如果Bean配置在不同的XML文件中,使用ref引用--><ref local="someBean"/> 其实两种......

霍淇滨 ⋅ 今天 ⋅ 0

05、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/srcwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu......

北岩 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部