zoukankan      html  css  js  c++  java
  • iOS组件化开发-发布私有库

    远程索引库

    将远程索引库添关联到本地

    pod repo 查看本地已关联仓库源
    pod repo add  本地索引库名称 远程索引库仓库地址
    pod repo update 索引库名称
    pod repo remove 本地索引库名称

     执行命令 添加远程索引库`KTPodSpecs`克隆到本地

    远程库 

    新建框架工程KTUIKit

    利用模板自动生成私有库工程 

    pod lib create 框架名称
    pod lib create KTUIKit

    生成的工程依赖关系

    KTUIKit的示例工程的podfile配置spec的路径是相对于本地podfile的路径

    编写PodSpec 

    依赖第三方库

    framewirks:依赖系统的动态库 比如 UIKit
    vendored_framework:依赖非系统的动态库 比如TencentOpenAPI.framework
    libraries:依赖系统静态库 比如libstdc++.a
    vendored_libraries:依赖非系统的静态库 比如新浪微博的libWeiboSDK.a
    dependency:依赖pod库

    上传框架到远程仓库 

     新建远程仓库

    进入本地KTUIKit目录执行Git命令 与远程KTUIKit建立关联

    git remote add origin https://github.com/coderketao/KTUIKit.git
    git branch --set-upstream-to=origin/master master 本地分支远程分支建立track

     

    建立关联后,本地KTUIKit push到远程仓库 注意:push过程记得一定将Pods和Podfile.lock文件忽略,否则导致pod install和pod repo push很慢

    远程master分支添加tag 执行命令

    git tag '0.1.0' 添加
    git push --tags
    git tag -d 0.1.0 删除
    git push origin :0.1.0

    私有库发布

    将podspec文件到远程索引库 执行命令 验证`KTUIKit.podspec`是否合法

    pod lib lint KTUIKit.podspec --allow-warnings --use-libraries 验证本地

    执行命令 发布podspec到远程索引仓库

    pod repo push KTPodSpecs KTUIKit.podspec --allow-warnings --use-libraries 

    在构建组件时,如果该组件引用了其它库

    s.dependendy 'SDWebImage'
    s.dependendy 'AFNetWorking'

    在验证、推送远程索引库加上pod的source

    复制代码
    pod lib lint KTUIKit.podspec --sources='http://47.93.191.194:9002/hongketao/QXComponentSpecs.git,https://github.com/CocoaPods/Specs.git' --allow-warnings --use-libraries 
    
    pod repo push KTPodSpecs KTUIKit.podspec --sources='http://47.93.191.194:9002/hongketao/QXComponentSpecs.git,https://github.com/CocoaPods/Specs.git' --allow-warnings --use-libraries 
    复制代码

    私有库使用

    新建项目,应用私有库 

     podspec的写法

    ~> 1.2.0 要求版本 [1.2.0, 2.0.0)
    <= 1.2.0 版本小于等于1.2.0 超过后1.2.0后不再更新

    指定三方库本地路径的写法(用于提交前进行测试)

    pod 'AFNetworking', :path => '~/Desktop/AFNetworking'

    指定git的写法

    pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git'

    pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :branch => 'dev'

    pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :tag => '3.1.1'

    pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :commit => '0f506b1c45'

    指定podspec的写法

    pod 'AFNetworking', :podspec => '~/Desktop/AFNetworking/AFNetworking.podspec'

    指定subspecs的写法(这也是subspec的另一个用法

    pod 'MyThirdparty', '~> 0.0.1', :subspecs => ['Sparta', 'GotyeSDK', 'TalkingData', 'Tingyun', 'BaiduPanorama']

     
     
  • 相关阅读:
    2
    1
    nginx隐藏版本号
    全面对比主流 .NET 报表控件 (转)
    前端的发展和未来趋势
    NPM初学者指南 (转)
    一文解读MySQL事务
    如何高效的学习技术
    重新统一的 .NET平台-.NET 5
    为啥要有微服务?啥是微服务?
  • 原文地址:https://www.cnblogs.com/jukaiit/p/12392264.html
Copyright © 2011-2022 走看看