美文网首页
2018-12-02. CocoaPods 使用

2018-12-02. CocoaPods 使用

作者: Life淡淡 | 来源:发表于2018-12-03 11:30 被阅读8次

    https://blog.csdn.net/jiankeufo/article/details/79362660

    这片文章中主要包括

    1:CocoaPod的安装

    2:CocoaPods的日常使用

    3:创建CocoaPods的私有库

    4:创建CocoaPods的开源库

    一 CocoaPods的介绍

    CocoaPods 依赖ruby环境,iOS 或MAC的第三方管理工具。

    官方博客:http://blog.cocoapods.org/CocoaPods-1.0/

    CocoaPods App 1.0 的下载地址:https://cocoapods.org/app

    二 CocoaPods的安装

    1:替换ruby源

        1:查看ruby的版本     ruby -v

        2:查看ruby源:gem sources -l

        3:更换ruby源: 

                移除: gem sources --remove https://rubygems.org/ 

                更换:gem source -a https://gems.ruby-china.org

        4:升级Gem包(管理Ruby库和程序的标准包): sudo gem update --system

       2:CocoaPods的安装

            1:OS X 10.11 以前安装命令为:sudo gem install cocoapods// 安装cocoapods

            2:Mac系统为OS X EL Capitan安装命令为

                1:安装最新版本 sudo gem install -n /usr/local/bin cocoapods

                2:安装指定版本 sudo gem install -n /usr/local/bin cocoapods -v 1.0.0

                3:安装最新的release beta版本 sudo gem install -n /usr/local/bin cocoapods --pre

        3:卸载 CocoaPods

            sudo gem uninstall cocoapods

        4:更新Podspec的索引文件

            1:查看是否安装成功 pod --version

            2:pod setup 将所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目录下

        Podspec: 实际上是第三方的描述文件。

    所有的第三方开源库的Podspec文件都托管在https://github.com/CocoaPods/Specs

    我们需要把这个Podspec文件保存到本地,这样才能让我们使用命令pod search 开源库搜索一个开源库,怎样才能把github上的Podspec文件保存本地呢?那就是 pod setup

    三 CocoaPods的使用

    1:到工程目录下面

    2:在终端中执行pod init 

    3:打开Podfile文件在其中编写需要下载第三方 


    简单podfile 复杂的podfile

    3.Podfile的基本语法

        1:platform: '7.0' 

            指定了开源库应该被编译在哪个平台以及平台的最低版本

            若不指定平台版本,官方文档里写明各平台默认值为iOS:4.3,OS X:10.6,tvOS:9.0,watchOS:2.0

        2: inhibit_all_warnings!

            屏蔽cocoapods库里面的所有警告

            这个特性也能在子target里面定义,如果你想屏蔽某pod里面的警告也是可以的:

            pod 'JYCarousel', :inhibit_warnings => true

        3:use_frameworks!

            使用frameworks动态库替换静态库链接 

                (1)swift项目cocoapods 默认 use_frameworks!

                (2)OC项目cocoapods 默认 #use_frameworks!

        4. workspace 

            指定应该包含所有projects的Xcode workspace.

            如果没有显示指定workspace并且在Podfile所在目录只有一个project,那么project的名称会被用作于workspace的名称

        5.project

            默认情况下是没有指定的,当没有指定时,会使用Podfile目录下与target同名的工程:(我们只有一个工程JYCocoaPodsTest)

            # JYCocoaPodsTest这个Target只有在JYCocoaPodsTest工程中才会链接

            target 'JYCocoaPodsTest' do

            project 'JYCocoaPodsTest'

            ...

            end

            5. target 'xxxx' do

                ** end**

                指定特定Target的依赖库

                可以嵌套子Target的依赖库

            6. inherit! :search_paths

                明确指定继承于父层的所有pod,默认就是继承的

            7. source

                指定specs的位置,自定义添加自己的podspec。公司内部使用

                  cocoapods 官方source是隐式的需要的,一旦你指定了其他source 你就需要也把官方的指定上

                例如

                source 'ssh://git@gitlab.9ijx.com:9830/iOS/Specs.git'

                source 'https://github.com/CocoaPods/Specs.git'

                当我们使用pod install或者pod setup时,会自动在~/.cocoapods/repo目录下更新项目需要的podspec索引文件如下:

    4. 依赖库的基本写法:

        

    5. 依赖库的自定义写法

        下面都会用到podspec文件,所以要熟悉这个文件的构成才可以.

            Using the files from a local path (使用本地文件)

                pod 'JYCarousel', :path => '/Users/Dely/Desktop/JYCarousel'

                

            

    podspec

                4.进入项目根目录进行安装pod install

        From a podspec in the root of a library repository (引用仓库根目录的podspec)

        

    From a podspec in the root of a library repository

    需要特别注意的是,虽然这样将会满足任何在Pod中的依赖项通过其他Pods

    但是 podspec必须存在于仓库的根目录 中,如果根目录中没有存在这个podspec文件,你将不得不使用下面提到的几种方式之一

        From a podspec outside a spec repository, for a library without podspec(在一个不带podsepec的库里引用外部的spec)

        如果一个podspec能够从外部的仓库源的获取,设想一下,也通过HTTP来获取podspec:

        

    离线

    pod spec

        使用一个在给定podspec中声明的Pod的依赖项。如果如果没有参数被传递,那么在Podfile根部的第一个podspec会被使用。它将会被库所在的工程所使用

        

    pod

    五. CocoaPods的说明

        1、第三方库会被编译成.a静态库或者.framwork的动态链接库供我们真正的工程使用。

        CocoaPods会将所有的第三方库以target的方式组成一个名为Pods的工程,该工程就放在刚才新生成的Pods目录下。整个第三方库工程会生成一个名称为libPods.a的静态库提供给我们自己的CocoaPodsTest工程使用。

        对于资源文件,CocoaPods提供了一个名为Pods-resources.sh的bash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。

        2、我们的工程和第三方库所在的工程会由一个新生成的workspace管理

        为了方便我们直观的管理工程和第三方库,CocoaPodsTest工程和Pods工程会被以workspace的形式组织和管理,也就是我们刚才看到的JYCocoaPodsTest.xcworkspace文件。

        3、原来的工程设置已经被更改了,这时候我们直接打开原来的工程文件去编译就会报错,只能使用新生成的workspace来进行项目管理。

        4、CocoaPods通过一个名为Pods.xcconfig的文件来在编译时设置所有的依赖和参数。

    相关文章

      网友评论

          本文标题:2018-12-02. CocoaPods 使用

          本文链接:https://www.haomeiwen.com/subject/gsmjcqtx.html