zoukankan      html  css  js  c++  java
  • iOS建立自己cocoaPods库

    由于公司的项目比较多,多个项目之间有很多公共的东西,各种姿势百度之后决定使用码云私有库+cocoaPods的方式来管理公共部分的代码(公司的代码是不能公开的,所以用的是码云)。

    本文讲的是从头开始的流程:

    1、在码云上创建一个自己的私有仓库,本人是使用的sourceTree在本地进行的版本管理

    参考:使用码云创建属于你的免费私有git仓库

    2、在终端,cd到你的项目文件目录中,创建podspec文件:

    pod spec create xxxxx

    文件名最好与你的库名字一致,库名字最好不要与pods上其他库名字重复

    创建成功后,项目文件目录下会多一个xxxxx.podspec的文件,这个相当于pods仓库的配置文件,配置内容具体如下:

    # Pod::Spec.new do |s|
    # s.name             = "PodTestLibrary"    #名称
    # s.version          = "0.1.0"             #版本号
    # s.summary          = "Just Testing."     #简短介绍,下面是详细介绍
    # s.description      = <<-DESC
    # Testing Private Podspec.
    # DESC
    # s.homepage         = "https://git.oschina.net/wuhongxing/PrivateRepo.git"                           #主页,这里要填写可以访问到的地址,不然验证不通过
    # s.screenshots     = "www.example.com/screenshots_1", "www.example.com/screenshots_2"           #截图
    # s.license          = 'MIT'              #开源协议
    # s.author           = { "wtlucky" => "wtlucky@foxmail.com" }                   #作者信息
    # s.source           = { :git => "https://git.oschina.net/wuhongxing/PrivateRepo.git", :tag => "0.1.0" }      #项目地址,这里不支持ssh的地址,验证不通过,只支持HTTP和HTTPS,最好使用HTTPS
    # s.social_media_url = 'https://twitter.com/<twitter_username>'                       #多媒体介绍地址
    
    # s.platform     = :ios, '8.0'            #支持的平台及版本
    # s.requires_arc = true                   #是否使用ARC,如果指定具体文件,则具体的问题使用ARC
    
    # s.source_files = 'Pod/Classes/**/*.{h,m}'     #代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则用逗号分开,如果需要在项目中分组显示,这里也要做相应的设置
    # s.resource_bundles = {
    # 'PodTestLibrary' => ['Pod/Assets/*.png']
    # }                                       #资源文件地址
    # s.public_header_files = 'Pod/Classes/**/*.h'   #公开头文件地址
    # s.frameworks = 'UIKit'                  #所需的framework,多个用逗号隔开
    # s.dependency 'AFNetworking', '~> 2.3'   #依赖关系,该项目所依赖的其他库,如果有多个需要填写多个s.dependency
    # end

    然后将代码提交。

    这个配置文件的配置内容很重要,配置的对错,会决定你的代码能否成功的推送到pods

    3、为你的code打上tag版本号

    git tag '0.0.1'
    git push --tags

    版本号自己确定,与podspec配置文件内的版本号相匹配

    4、注册trunk

    pod trunk register xxxx@xxxx.com 'xxxx' --description='xxxx' --verbose
    xxxx@xxxx.com一个可用的邮箱,注册成功之后会收到一份邮件需要点开
    'xxxx'用户名
    --description='xxxx'描述
    --verbose如果出现错误,显示更多信息

    查看自己的信息:
    pod trunk me

    添加其他维护者

    pod trunk add-owner xxxxxxx xxxxx@xxxx.com
    xxxxxxx 库的名字
    xxxxx@xxxx.com 其他人的trunk邮箱

    5、提交到CocoaPods trunk

    pod trunk push --allow-warnings

    该操作会对本地的代码及podspec配置文件进行检查,允许警告WARN但不允许报错ERROR

    也可以自己手动检查

    pod lib lint --allow-warnings

     如果是在项目文件目录下pod lib lint后面不需要跟xxxxx.podspec文件名,--allow-warnings是允许警告

    6、上面的步骤成功之后

    pod search 你的库名

    就能搜索到了

    6、接下来是更新代码,然后推送到pods的流程。

    我的代码库里只是一些零散的文件,由于推送到pods的代码不能报错,所以我这里是新建了一个空项目,然后把公共依赖的文件放到一个文件夹内Classes(名字随意),拖到项目中,在提交的时候先编译一下,确保没有报错。

    这样做的同时podspec里

    s.source_files的配置也要改为指定的文件目录:项目名/Classes/**/*.{h,m}

    本地文件改动后,提交到git

    7、然后重复步骤3,为你的代码打上tag,并推送tag(tag不能重复)

    8、然后步骤5推送到trunk,这一步检查的时候很容易失败,报出的错误可以翻译过来针对性的找一下问题,基本意思都很明确

    以后在每个项目中之需要在Podfile文件中增加自己的库,然后

    pod install

    每次有更新 pod update 你的库名

    即可

    可以参考:发布自己的pods到CocoaPods trunk

         https://www.cnblogs.com/richard-youth/p/4704413.html

     在引用Masonry时,需要在podspec配置文件中增加

    s.user_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' }

    参考:[CocoaPod]基于私有仓库的pod创建问题

     

    
    
  • 相关阅读:
    B+树实现
    一些比较特殊的计数序列
    codeforce刷题(六)
    codeforces刷题(五)
    Swap and Flip
    leetcode刷题(三)
    leetcode刷题(二)
    leetcode刷题(一)
    C语言学习笔记-变量存储
    水笔记
  • 原文地址:https://www.cnblogs.com/chzheng/p/7883757.html
Copyright © 2011-2022 走看看