美文网首页
iOS 私有库

iOS 私有库

作者: 金___k | 来源:发表于2018-12-03 15:46 被阅读0次

    准备工作:

    1. 先检查下cocopod版本,最好版本至少在1.6.0.beta.1 及以上
    2. Git代码托管平台。比如GitHub、Gitlab、Bitbucket、开源中国、coding.net、csdn.net
    1. 创建代码库和索引库
    91B00982-15B9-42C6-B445-C0BEC9EC3EA6.png 238A85C9-B5B8-4466-A25C-0C4CC9BB35FD.png

    :索引库有一个就可以了,这两个不需要写任何东西,创建好扔一边就行了。

    2. 创建本地索引库

    在终端执行下面命名就行

    cd .cocoapods/repos
    pod repo add 索引库名字  索引库地址
    

    索引库里面用上面创建名字
    地址在创建后会有比如https://gitlab.com/xxx/PrivateSpec.git

    7D591178-CF0C-453C-BEB0-EA7CF6B4F608.png
    执行一下ls 或者前往 .cocoapods/repos 看添加是否成功
    2. 创建项目工程文件

    终端 cd 到你要创建到路径下面,然后执行

    pod lib create 代码库名字
    

    固定步骤,这个就直接偷图了


    2007398-96de8c96c322a3ef.png

    然后我们会得到一个项目,不修改的话 我们会默认提交
    项目名/class下面2级的文件,如果有需要可以自己更改source_files的格式
    提交之后所有文件都会在一个文件夹下面,强迫症肯定不能忍,这个后面说,一般没什么必要改了,也是因为比较麻烦。

    3. 准备提交

    把需要提交的代码放到路径下面,然后修改.podspec文件,只挑了我用到的一些要修改的来说明

    s.name         = "BaseLib" #工程的名字
    s.version      = "1.0.0"  #工程的版本
    s.summary      = "Gray's modularization BaseFramework."  #工程的摘要
    s.description  = "Gray's BaseFramework demo"  #工程的描述
    s.homepage     = "http://gitlab.com/作者名/BaseLib"  #工程的首页
    s.swift_version = '4.0'  #工程的swift版本
    s.ios.deployment_target = "8.0"  #工程的编译版本
    s.source       = { :git => "#工程的git地址", :tag => "#{s.version}" } #创建的代码库git地址 https://XXXX.XXX.git
    s.source_files  = "Classes", "Classes/**/*.{h,m}"  #工程需要引入的文件
    s.exclude_files = "Classes/Exclude"  #工程不需要引入的文件
    s.public_header_files = "Classes/**/*.h"  #工程需要暴露出来的头文件
    s.resources = "Resources/*"  #工程需要引入的资源文件(图片,xib等)
    s.resource_bundles = {'Resources' => 'XXX.framework/Resources/XXX.bundle'} #工程需要引入的bundle
    s.frameworks = "ImageIO"  #工程依赖的framework
    s.vendored_frameworks = [] #工程依赖的第三方framework
    s.libraries = "iconv", "xml2"  #工程依赖的library
    s.vendored_libraries = []  #工程依赖第三方的library
    s.dependency "AFNetworking", "~> 3.0"  #工程依赖的第三方库
     
    

    代码写好,podspec修改好就开始提交了,有些地方说验证修改后的podspec,但是因为改过很多次了 所以觉得没什么必要

    4. 提交

    cd 到项目文件夹,不是Example文件夹
    如果是第一次提交的话

    cd existing_folder
    git init
    git remote add origin https://gitlab.com/xxx.git
    

    不是第一次就从这开始

    cd existing_folder
    git add .
    git commit -m "注释"
    git pull origin master(先拉一下代码,防止多人开发的时候别人有提交的代码)
    git push -u origin master
    git tag 1.0.0
    git push origin 1.0.0
    

    上传成功后 就可以在gitLab tag1.0.0下面看见代码,这个时候还是不能用的,还需要提交索引库

    cd existing_folder
    pod repo push PrivateSpec BaseLib.podspec
    

    格式是pod repo push +索引库名字 +.podspec文件名
    这个过程会有点小长,如果有Error 就按提示改就行了,一般都会很顺利

    这个地方常见问题

    如果私有库添加了静态库或者dependency用了静态库需要加上--use-libraries
    想看见更详细的信息 后面加上 --verbose
    忽略警告--allow-warnings
    索引库地址--sources='xxx.git'
    如果是OC和swift 的混编 加上--use-modular-headers(这个地方官方文档原话是Lint uses modular headers during installation..)
    具体参考cocopod Command-line Reference文档

    最后格式可能是
    pod repo push PrivateSpec BaseLib.podspec --verbose --allow-warnings --use-libraries --use-modular-headers
    这个就看 项目需求吧

    4. 使用

    和正常cocopod 的Podfile使用差不多的,在最前面加上

    source 'https://github.com/CocoaPods/Specs.git'
    #这里用的是索引地址
    source 'https://gitlab.com/xxx/privatespec.git'
    

    然后就可以

      pod 'BaseLib', '~> 1.0.0'
    

    也有人把sorece 写在pod后面,这个就看个人习惯了

    相关文章

      网友评论

          本文标题:iOS 私有库

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