cocoapods使用 swift注意事项
版权声明:本文为博主原创文章,未经博主允许不得转载。
说明:2015年12月2日更新,增加一个可能遇到的问题,优化排版。使用CocoaPods过程中遇到问题,欢迎评论交流。
一、CocoaPods的安装
(1)使用淘宝的Ruby镜像替换官方的ruby源,在终端输入命令
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l
如果结果为下面的样子,说明替换成功了。
***CURRENT SOURCES ***
https://ruby.taobao.org/
(2)升级gem,在终端输入命令
$ sudo gem update --system
接着会要求输入电脑密码,输入密码后回车,就开始升级了。如果看到下面这句话,说明升级成功了。
RubyGems system software updated
(3)安装CocoaPods,在终端输入命令
$ sudo gem install cocoapods
输入密码后开始安装。
二、CocoaPods的使用
(1)查找第三方库,在终端输入命令
$ pod search AFNetworking
会显示出AFNetworking相关的库
(2)在工程中创建一个Podfile文件,在终端输入命令
$cd 工程根目录路径
$ touch Podfile
(3)使用Xcode打开Podfile,然后按如下格式编辑Podfile,保存。
platform :ios, '7.0'
pod 'AFNetworking', '~>2.0'
pod 'MJExtension'
platform :ios, '6.1'
pod 'SDWebImage', '~>3.7'
pod 'MBProgressHUD', '~>0.9.1'
pod 'Reachability', '~> 3.2'
(4)安装第三方库,在终端输入命令
$cd 工程根目录路径
$ pod install
至此,你的所有第三方库都已经下载完成并且设置好了编译参数和依赖。
三、日常使用
(1)使用CocoaPods 生成的 .xcworkspace 文件来打开工程,而不是以前的.xcodeproj 文件。
(2)每次更改了Podfile 文件,你需要cd到工程根目录,然后重新执行一次pod update命令。
四、可能遇到的问题
(1)使用cocoapods导入第三方类库后头文件没有代码提示?
解决办法: 选择Target -> Build Settings 菜单,找到\”User Header Search Paths\”设置项,新增一个值"${SRCROOT}",并且选择\”Recursive\”
(2)出现如下警告
[!] Your Podfile has had smart quotessanitised. To avoid issues in the future, you should not use TextEdit forediting it. If you are not using TextEdit, you should turn off smart quotes inyour editor of choice.
解决办法:不要使用文本编辑去编辑Podfile,使用Xcode编辑,或者使用终端敲命令去编辑。
(3) 执行pod install 或pod update 命令后,updating local specsrepositories 卡住不动
解决办法:pod install 被墙了,换成新的命令pod install --verbose --no-repo-update
(4) 项目运行时报错:Thefile “Pods.xcconfig” couldn’t be opened because there is no such file.
Swift使用时:
注意:你不能使用TextEdit来编辑Podfile,因为它有可能用图形化的更有吸引力的typeset quotes代替standard quotes,这可能导致CocoaPods不能理解并抛出错误,所以最好用Xcode或者别的编程文本编辑器来编辑你的Podfile。
默认的podFile看起来是这样的:
1
2
3
4
5
|
# Uncomment this line to define a global platform for your project# platform :ios, '6.0' target 'IceCreamShop' do end target 'IceCreamShopTests' do end |
将注释的内容替换成下面的两行:
1
|
platform :ios, "8.0" use_frameworks! |
这就告诉了CocoaPods--你的项目使用的是iOS 8.0,并且将使用框架来代替静态库。
想要在Swift中使用CocoaPods,你必须明确的写出use_frameworks! 来选择使用框架。如果你忘了写这个,CocoaPods能检测到你使用使用Swift CocoaPods,你安装pods的时候就会报错。
Swift podfile 格式
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, ‘8.0’
use_frameworks! target 'Alamofire+SwiftyJSON' do
pod 'Alamofire', '~> 3.0'
pod 'SwiftyJSON', '~> 3.0'
end
Cocoapods 引用第三方库的几种方式
使用过 Cocoapods 的童鞋应该都知道,Cocoapods 的引用方式有三种:
方式 | 例子 | 说明 |
---|---|---|
版本号引用 | pod 'Alamofire', '~> 3.0' | 这种方式引用的是已经发布的版本,包含了 >``>=``<``<=``~> 几种版本限制符号,其中~> 符号代表只更新最新的小版本号,比如 ~> 1.0.0 则只会更新到 1.0.x 的最新版本,而不会更新 1.x.0 以上的版本 |
本地路径引用 | pod 'Alamofire', :path => '~/Documents/Alamofire' | 这种方式直接引用本地的代码,这种方式下对引用库的修改仍然会提交到引用库的 git 上,而不会提交到主工程。 |
远程 git 路径引用 | pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git' | 这种方式直接引用远程 git 代码,不需要引用的库进行发布,而且还支持 :branch => 、:tag => 和 :commit => 三种选项
|
cocoapods使用 swift注意事项的更多相关文章
- 关于cocoapods和swift中使用oc第三方
mac 系统自带ruby,使用cocoapods,直接安装cocoapods就行 终端:$ sudo gem install cocoapods {安装较慢是因为有墙,查看ruby镜像列表:$ gem ...
- swift 注意事项 (十六) —— 可选链
可选链(Optional Chaining) 我们都知道"可选型"是什么.那么可选链又是什么,举个样例解释一下: struct MyName{ var name } st ...
- Swift Tips - 当 Swift 遇上 CocoaPods
CocoaPods 作为 iOS 开发的包管理工具,几乎成为了 Objective-C 的行业标准.它为我们提供了非常方便的包管理功能.而苹果正式发布 Swift 语言也已经有半年多时间了,Swift ...
- 怎样在 Swift 项目中使用 CocoaPods
4个步骤,将 CocoaPods 导入 Swift 1.创建.编辑 Podfile 文件并 pod install 2.使用 File -> New -> File- 创建一个 Heade ...
- Swift 遇到的报错信息
第一个,没看懂.一开始还以为是不支持iOS7的缘故. dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /var ...
- 总结swift语言常见的20个问题和回答
1.假设我是个刚入门的iOS开发人员,选swift学习呢,还是选objective-c学习,还是两个都学? 这个能够依据两种情况来决定:1.我想进入公司担任iOS开发的职位 2.我仅仅想做个独立 ...
- 超精简易用cocoaPods的安装和使用
cocoaPods 安装和使用 第一步:替换ruby源 $ gem sources -l 查看当前ruby的源 $ gem sources ...
- Cocoa包管理器之CocoaPods详解
CocoaPods在Cocoa开发日常工作中经常用到的包管理器,即依赖管理工具.有的项目也有用Carthage的,Carthage是一个比较新的依赖管理工具,是使用Swift语言开发的.Carthag ...
- use_frameworks!和#use_frameworks!的区别、解决Swift项目中use_frameworks!冲突的问题
use_frameworks!和#use_frameworks!的区别 转自:https://www.jianshu.com/p/0ae58a477459 1. 用cocoapods 导入swift ...
随机推荐
- 在没有DOM操作的日子里,我是怎么熬过来的(上)
前言 在我动笔写这篇文章的时候,我刚刚从我的项目中删除了最后一行JQuery代码.至于我为何要这么做,请听闰土娓娓道来.前几年我还在想,假如有一天,前端世界里不能再直接操作dom了,我该怎么办?没想到 ...
- Java数据结构和算法(三)——冒泡、选择、插入排序算法
上一篇博客我们实现的数组结构是无序的,也就是纯粹按照插入顺序进行排列,那么如何进行元素排序,本篇博客我们介绍几种简单的排序算法. 1.冒泡排序 这个名词的由来很好理解,一般河水中的冒泡,水底刚冒出来的 ...
- C语言之scanf
#include<stdio.h>int main(){int num;int a,b,c,result,d,result1;scanf("int%d",&nu ...
- 并发容器之写时拷贝的 List 和 Set
对于一个对象来说,我们为了保证它的并发性,通常会选择使用声明式加锁方式交由我们的 Java 虚拟机来完成自动的加锁和释放锁的操作,例如我们的 synchronized.也会选择使用显式锁机制来主动的控 ...
- Python带参数的装饰器
在装饰器函数里传入参数 # -*- coding: utf-8 -*- # 2017/12/2 21:38 # 这不是什么黑魔法,你只需要让包装器传递参数: def a_decorator_passi ...
- ABAP中的AMDP(ABAP-Managed Database Procedures )
ABAP管理下的数据库存储过程(ABAP-Managed Database Procedure,以下简称AMDP)是在APAP on SAP HANA开发中的一种优化模式.AMDP使用数据库语言书写, ...
- 如何搭建一个B2B电商的跨境系统网站?
国内的B2B跨境电商系统开发定制如何做才符合标准?商家怎么搭建专属的电商供应链系统?目前并不是大多数电商行业的公司可以应对得起组建团队来做,下面分享下大概的建设供应链商城网站思路和步骤(以数商云跨境电 ...
- SubTool 电影字幕下载程序
项目地址 https://github.com/backtracker/SubTool 程序说明 作为一个高清电影爱好者,找字幕的痛苦懂的人自然会懂.我在网上找了很久,并没有找到好用的字幕下载程序,于 ...
- YiShop_做一个b2c商城要多少钱
[YiShop商城系统]做一个b2c商城要多少钱?是企业在做一个b2c商城最关心的问题.每个企业都是想用最少的钱做一个好的b2c商城.但企业这种想法可能在现实中是无法实现的.网站这种产品现实中是一分钱 ...
- slurm-16.05.3任务调度系统部署与测试(1)
1.概述2.同步节点时间3.下载并解压文件4.编译安装munge-0.5.125.配置munge6.编译安装slurm-16.05.37.配置slurm8.配置MySQL数据库环境9.启动slur ...