管理第三方库(CocoaPods)

最近在学习AutoLayout,大家都知道 AutoLayout 原生的代码约束语句比较长 ,以前oc的时候,大家都回使用 Masonry 这个开源库,来大大简化代码量,而且易于理解。现在用swift了,就有些大牛用swift 实现了类似的库,叫SnapKit ,然后我就想把它导入我的项目中用 。

我刚开始是将它下载下来,各种报错呀。最后发现我下的是dev 那个分支branch上的 , 换成master 后还是不行。 我xcode 7 用得时swift 2.0 master上面还是老版本的语法,最后发现有个branch叫 swift-2.0 下载下来后 ,变异OK。没有问题了。用一种比较笨得方法导入我的项目
找到下载的库 ,然后我们在,右击我们的项目add files to “xxxx” 把这里SnapKit.xcodeproj 添加进来 。
然后在targets里面的Embedded Binaries将这个库导入就可以了

最后在使用的地方import SnapKit ,就可以了。然后昨天就这么开心的用着, 今天突然发现还有CocoaPods这个东西 , 这个东西是用来管理第三方库的,相当于java中的maven 。

当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库。这种情况下自己来管理 真心很烦的 , 而且如果你的项目需要很多第三方库呢。所以我觉得必须用CocoaPods ,当然现在好像还有别的优秀的第三方库管理 ,但是CocoaPods 无疑是用得最多的。下面看下他得基本用法

在安装CocoaPods之前,首先要在本地安装好Ruby环境。然而MAC上自带ruby 。

sudo gem install cocoapods

这个速度会很慢,一般都用淘宝的Ruby镜像来访问cocoapods。所以这块应该切换成淘宝的

gem sources --remove https://rubygems.org/
gem sources -a http://ruby.taobao.org/
gem sources -l

先移除原来的 , 然后添加淘宝的 , 最后查看当前的

这时候,再次输入

sudo gem install cocoapods

等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。

因为gitcafe和oschina都是国内的服务器,所以在执行索引更新操作时,会快很多。如下操作可以将CocoaPods设置成使用gitcafe镜像:

pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update

将以上代码中的 https://gitcafe.com/akuandev/Specs.git 替换成 http://git.oschina.net/akuandev/Specs.git 即可使用oschina上的镜像。

可以通过pod search命令进行查找库 ,比如这里我们查找我们的SnapKit

pod search SnapKit


-> SnapKit (0.13.0)
   Harness the power of auto layout with a simplified,chainable,and compile
   time safe Syntax.
   pod 'SnapKit','~> 0.13.0'
   - Homepage: https://github.com/SnapKit/SnapKit
   - Source:   https://github.com/SnapKit/SnapKit.git
   - Versions: 0.13.0,0.12.0,0.11.0,0.10.0 [master repo]

这里可以看到SnapKit是支持Cocopods的 , 有四个版本,最新的是0.13.0 ,这些都是master分支上得 。

然后在需要引入这些库的项目目录下新建一个文件 ,命名为Podfile,这个名称是固定的
将下面格式的信息写进Podfile 文件

platform:ios,'8.3'
pod 'Alamofire','~> 1.3.1'
pod 'SnapKit','~> 0.13.0'

第一行是支持的最大ios版本 ,下面两行表示我引入的库, 可以为多行 。
然后执行pod install --verbose --no-repo-update ,以前是pod install ,这个好像被墙了
如果成功的话项目下面会多一个.xcworkspace 的文件 ,用xcode打开这个文件 ,不要用以前的.xcodeproj
这样就依赖好了 。但是这两个都不是swift2.0的,所以暂时只能在xcode 6 上用 。。
目前还不知道怎么pod 其他branch的库, 只能用master的。等swift 2.0 普及了吧估计都回升级了 。

这里会报一个错误 说你那个库是beat版本的 , 要添加use_frameworks!
你把这个添加到Podfile最后面就行了

platform:ios,'~> 0.13.0'
use_frameworks!

更详细的请跳转:唐巧的用CocoaPods做iOS程序的依赖管理

swift详解之二十一----------管理第三方库CocoaPods的更多相关文章

  1. cocoapods – 命令/ bin / sh失败,退出代码23

    适用于所有豆荚,无需豆荚但仍然是同样的错误.有任何想法吗?

  2. iOS编译库/框架链接器标记问题是设备编译而不是模拟器

    背景:我正在尝试使用带有cocoapods的Phonegap.Phonegap已经存在从命令行编译的问题所以我只是将Xcode与生成的项目文件一起使用(并且在使用cocoapods时我无论如何都必须这样做).我用我的问题向Github推送了一个复制的空项目:https://github.com/Dan2552/phonegap-reproducable-issue您可以在repo的根目录中的bui

  3. ios – CFBundleVersion必须是以句点分隔的列表

    我将构建上传到itunesconnect时遇到了问题.我总是得到以下错误我的一般项目设置如下所示我也在我的项目中使用cocoapods,但之前从未收到此错误,我已经上传了几个版本.我不知道那个奇怪的数字[1443188838-89]来自哪里.同样在信息选项卡上,捆绑版本对我来说很好以及info.plist作为源代码看起来不错任何帮助深表感谢.解决方法好的,所以在花了很多时间在这个问题上后我终于可以

  4. ios – CocoaPods CorePlot安装显示缺少的框架和丢失的文件

    我是CocoaPods的新手,我正在尝试在我的Podfile中使用此行安装CorePlot:当我在安装后打开.xcworkspace文件时,CorePlot会显示缺少的框架.我将这些链接的二进制文件安装到我的Xcode项目中,但这并没有解决问题.在CorePlot目标中,似乎没有单独的方法来安装框架.这不是唯一的问题.当我尝试在CorePlot库中引用文件时,即使我可以看到CorePlot目标中的文件,我也会收到文件未找到错误:我尝试了以下import语句:都导致同样的错误.我不知道这些问题是否相关.我应

  5. 通用iOS应用程序在TestFlight中的iPad Air 2上不兼容

    您应该为项目和目标设置“有效架构”:armv7,armv7s和arm64.

  6. ios – 使用CocoaPods post install hook将自定义路径添加到HEADER_SEARCH_PATHS

    解决方法在Podfile中定义一个方法:然后在post_install中调用该方法:

  7. ios – 如何在不创建新目标的情况下阻止`pod install`将libPods.a添加到“Link with Libraries”构建阶段?

    解决方法要防止集成,您可以使用:

  8. ios – CocoaPods的Pods.xcconfig与现有的冲突

    解决方法你仍然可以吃蛋糕和(部分)吃它.您的目标的xcconfig文件可以包含一个cocoapods:但是,您仍然无法进食的部分是您想要指定已在Pods.xcconfig中设置的标志.我找不到添加到Cocoapods已在所包含文件中设置的路径的方法,例如你想要这个:然而,这一行简单地删除了Cocoapods头部搜索路径,只留下MyOtherIncludes版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。

  9. 通过cocoapods安装适用于iOS的Google Maps SDK会导致链接器错误

    我正在尝试使用cocoapods安装适用于iOS版本1.3.0的GoogleMapsSDK.实际上安装过程很成功,但是当我尝试使用框架时,app构建过程会返回链接器错误,例如:由于某种原因,链接器无法找到框架.我的cocoapods版本是0.20.1.XCode4.6.2.除了谷歌地图SDK,我的项目还有另外两个通过cocoapods添加的库.这是我的Podfile:提前致谢.解决方法您应该看到一个文件“Pods.xcconfig”,其中包含pod正在使用的框架.将应用程序的目标配置更改为基于CocoaP

  10. ios – CocoaPods podspec lint failure – 找不到文件

    我正在尝试分发我的pod,但我遇到了验证问题.当我想要对付我的.podspec时,我得到了:我尝试使用不同的变体保留其框架的路径要么&安培;其他变化,但这样我又得到一个错误:我还尝试过其他一些其他问题,比如:该项目使用Xcode5&使用xcodebuild和它的默认设置,我只有在为Cocoapods验证它时才会遇到此问题.解决方法我遇到了这个问题,试图创建一个自定义Podspec并添加Re

随机推荐

  1. Swift UITextField,UITextView,UISegmentedControl,UISwitch

    下面我们通过一个demo来简单的实现下这些控件的功能.首先,我们拖将这几个控件拖到storyboard,并关联上相应的属性和动作.如图:关联上属性和动作后,看看实现的代码:

  2. swift UISlider,UIStepper

    我们用两个label来显示slider和stepper的值.再用张图片来显示改变stepper值的效果.首先,这三个控件需要全局变量声明如下然后,我们对所有的控件做个简单的布局:最后,当slider的值改变时,我们用一个label来显示值的变化,同样,用另一个label来显示stepper值的变化,并改变图片的大小:实现效果如下:

  3. preferredFontForTextStyle字体设置之更改

    即:

  4. Swift没有异常处理,遇到功能性错误怎么办?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  5. 字典实战和UIKit初探

    ios中数组和字典的应用Applicationschedule类别子项类别名称优先级数据包contactsentertainment接触UIKit学习用Swift调用CocoaTouchimportUIKitletcolors=[]varbackView=UIView(frame:CGRectMake(0.0,0.0,320.0,CGFloat(colors.count*50)))backView

  6. swift语言IOS8开发战记21 Core Data2

    上一话中我们简单地介绍了一些coredata的基本知识,这一话我们通过编程来实现coredata的使用。还记得我们在coredata中定义的那个Model么,上面这段代码会加载这个Model。定义完方法之后,我们对coredata的准备都已经完成了。最后强调一点,coredata并不是数据库,它只是一个框架,协助我们进行数据库操作,它并不关心我们把数据存到哪里。

  7. swift语言IOS8开发战记22 Core Data3

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc,不然后面会报错,我也不知道为什么。

  8. swift实战小程序1天气预报

    在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。然后在btnpressed方法中依旧增加loadWeather方法.在loadWeather方法中加上信息的显示语句:运行一下看看效果,如图:虽然显示出来了,但是我们的text是可编辑状态的,在storyboard中勾选Editable,再次运行:大功告成,而且现在每次单击按钮,就会重新请求天气情况,大家也来试试吧。

  9. 【iOS学习01】swift ? and !  的学习

    如果不初始化就会报错。

  10. swift语言IOS8开发战记23 Core Data4

    接着我们需要把我们的Rest类变成一个被coredata管理的类,点开Rest类,作如下修改:关键字@NSManaged的作用是与实体中对应的属性通信,BinaryData对应的类型是NSData,CoreData没有布尔属性,只能用0和1来区分。进行如下操作,输入类名:建立好之后因为我们之前写的代码有些地方并不适用于coredata,所以编译器会报错,现在来一一解决。

返回
顶部