zoukankan      html  css  js  c++  java
  • iOS 快捷下载和安装并使用CocoaPods

    CocoaPods是什么?

    当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。所以,你需要 CocoaPods。

    CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。

    如何下载和安装CocoaPods?

    在安装CocoaPods之前,首先要在本地安装好Ruby环境

    参考如何快速正确的安装 Ruby, Rails 运行环境

    http://ruby-china.org/wiki/install_ruby_guide

    下面提供一个快捷方法安装CocoaPods:

    1.访问 https://github.com/CocoaPods/Specs,然后将Specs项目fork到自己的github账户上

    2. 下载GitHub Desktop, 然后clone Specs项目。

    3. 将clone的Specs项目的文件夹改名为master,然后拖到/Users/用户名/.cocoapods/repos目录下。

    4. 运行pod setup

    解释:pod setup的本质就是将https://github.com/CocoaPods/Specs上的Specs项目clone到/Users/用户名/.cocoapods/repos目录下。若此目录下已有Specs项目,则会将项目更新到最新的状态。由于Specs很大,容易导致pod setup失败。这时就需要我们手动安装Specs。若直接从github上下载zip文件,由于缺少git文件,会导致cocoa pods不使用。若用git clone,由于文件过大,容易导致失败。但是使用GitHub Desktop软件,则会提高clone的成功率,并且会给出clone的进度。

    使用cocoapods:

    利用CocoaPods,在项目中导入AFNetworking类库

    1.AFNetworking类库在GitHub地址是:https://github.com/AFNetworking/AFNetworking

    为了确定AFNetworking是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:

    $ pod search AFNetworking

    过几秒钟之后,你会在终端中看到关于AFNetworking类库的一些信息。

    2.使用Xcode 创建一个项目

    打开终端,输入cd /Users/paladinfeng/Desktop/shareSDKDemo/demo

    (注:cd后边有个空格,然后接你刚创建的项目的路径就可以了,别告诉我你不会直接拖进去)

    创建这个PodFile后在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:

    vim Podfile

    3.写入以下内容并保存 小提示:(终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出)

    platform :ios, '8.0'

    target “target名称” do

    pod 'AFNetworking', '~> 3.1.0'

    end

    CocoaPods报错:The dependency `AFNetworking ` is not used in any concrete target

    请点击进去参考:

    报错误[!] Pods written in Swift can only be integrated as frameworks; add `use_frameworks!` to your Podfil请点进去参考:

    可能是要添加的这个库 不支持swift导致

    解决办法:在podfile里面添加 use_frameworks!

    platform:ios,'8.0'

    #use_frameworks!个别需要用到它,比如reactiveCocoa MyApp为你的项目的名字

    defpods

    pod'AFNetworking','~>2.6'

    pod'ORStackView','~>3.0'

    pod'SwiftyJSON','~>2.3'

    use_frameworks! //在这里添加,设置支持swift,如果不引进swift相关的类则可以不用写

    end

    target'MyApp'do

    pods

    end

    就是在加入你需要的那些库之后最后再加一句use_frameworks!

    4.导入第三方库

    $pod install

    pod installpod update区别:

    1.使用pod install来安装新的库,即使你的工程里面已经有了Podfile,并且已经执行过pod install命令了;所以即使你是添加或移除库,都应该使用pod install。

    2.使用pod update [PODNAME] 只有在你需要更新库到更新的版本时候用。

    ps 

     当使用pod update遇到 ld: library not found for -ljcore-ios-1.1.1 可以这样解决

    小技巧:

    最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动

    原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:

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

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

    至此,添加已经完成。可以看到项目目录里面多了4个文件,以后运行工程都使用.xcworkspace文件,而不再用.xcodeproj了。

    查看 pod 版本

    $ pod --version
    
    0.39.0

    移除CocoaPods项目中已经配置的类库

    1.打开终端,输入cd /Users/paladinfeng/Desktop/shareSDKDemo/demo

    (注:cd后边有个空格,然后接你创建的项目的路径就可以了,别告诉我你不会直接拖进去)

    创建这个PodFile后在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:

    vim Podfile

    2.看到以下内容并保存 小提示:(终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出)

    platform :ios, '8.0'

    target “target名称” do

    pod 'AFNetworking', '~> 3.1.0'(把这一行删掉)

    end

    3.$pod install

    编译运行没有错误完成

    备注:

    解决MAC系统升级(10.15)导致COCOAPODS失效问题

    pod install 报错       sudo gem update --system 也不行  
    dunkhomedeMacBook-Pro:get dunkhome$ pod install
    -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory
    dunkhomedeMacBook-Pro:get dunkhome$ sudo gem update --system
    ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
        bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz)

    居然是404,于是我用浏览器打开https://gems.ruby-china.org,发现其服务域名更换了:

    然后删除gem源:

    gem sources --remove https://gems.ruby-china.org/

    修改gem源:

    gem sources -a https://gems.ruby-china.com

    查看gem源是否是最新的:

    gem sources -l

    升级cocoapods:

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

    查看升级后的cocoapods版本:

    pod --version  

    现在最新的是

    MacBook-Pro:get dunkhome$ pod --version 

    1.8.3

    Cocoapods - pod install 成功后找不到头文件解决

    问题描述:使用Cocoapods时,import 找不到头文件。

    问题原因:这是因为还没设置头文件的目录。

    解决办法:在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写:${SRCROOT}   ,后边选择recursive 。就可以了。

    注意:是在 User Header Search Paths 里添加,不是上面的 Header Search Paths.

    cocoapods移除某一个框架以后,会遇到ld: library not found for -lxxxx-ios-x.x.x

    这种情况下是因为将框架移除之后,并没有移除build setting->other linker flag中的引用,找到移除之后的框架,删除引用即可。

  • 相关阅读:
    c++ 队列
    17:特殊类成员:函数指针5
    c++ deque 双端队列
    18:字符串-char型字符串
    c++ 16 this 和 继承 及继承机制中的构造函数 与 析构函数
    c++ string char* const char*
    c++ 小片段
    google protobuf 使用示例
    hibernate-cache
    hibernate-criteria查询(二)
  • 原文地址:https://www.cnblogs.com/ljcgood66/p/6391164.html
Copyright © 2011-2022 走看看