美文网首页
iOS私有库搭建记录

iOS私有库搭建记录

作者: 萝卜Robert_X | 来源:发表于2019-07-11 16:17 被阅读0次

准备工作

  • 安装cocoapod (已安装请忽略,未安装请找度娘)
  • 创建私有的spection存放地址
① http://xxxxxxx/TJRepo.git
  • 创建工具类代码存放地址
② http://xxxxxxx/TJKit.git

1. 在本地创建spec仓库

打开终端,在终端输入

# pod repo add [自定义的本地私有库名字] [第一个git仓库地址]
如: pod repo add TJRepo http://xxxxxxx/TJRepo.git
image.png

项目clone下来之后,在~/.cocoapods/repos/ 文件夹下就会多出一个MyRepo的文件夹,这里就是我们即将存放本地podspec的仓库

image.png

2.配置源码仓库

2.1 创建源码仓库

这次要用到第二个git地址,首先我们需要创建一个空白文件夹【私有仓库Demo】,然后 cd 到该文件目录下执行

pod lib create [仓库名字]
如:pod lib create TJKit
创建模板 成功情况

如果出现错误请查看 Q1 是否符合你的情况

Pod私有库创建成功。一般来说创建成功会自动打开项目

【私有仓库】文件夹下将会生成一个【TJKit】的文件夹,目录结构如下


目录结构

2.2 修改TJKit.podspec文件


# 基础信息
Pod::Spec.new do |s|
  s.name             = 'TJKit' # 名字
  s.version          = '0.0.1' # 版本号,需要跟我们上传的tag号一致
  s.summary          = 'xxxx' #摘要,可自定义

# 描述 可自定义
  s.description      = <<-DESC
  xxxxx
                       DESC

#项目的主页,同浏览器地址
  s.homepage         = 'http://xxxxx/TJKit'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  
  s.author           = { '作者' => '您的邮箱' }
  # clone的地址
  s.source           = { :git => 'http://xxxxx/TJKit.git', :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
  
  # 最低支持的iOS版本
  s.ios.deployment_target = '10.0'
  # 私有库所在的文件目录
  s.source_files = 'TJKit/Classes/**/*'
  
  # 关联的图片资源
  # s.resource_bundles = {
  #   'TJKit' => ['TJKit/Assets/*.png']
  # }

  # s.public_header_files = 'Pod/Classes/**/*.h'
  # s.frameworks = 'UIKit', 'MapKit'
  # s.dependency 'AFNetworking', '~> 2.3'
end

2.3 添加自己的代码

把需要做成私有库的源码放到TJKit/Classes中,然后将原来的placeme.swift文件删除,注意新文件中不能有依赖错误

2.4 检查设置是否正确

# 检查命令
pod lib lint --allow-warnings --verbose
image.png

验证通过,如遇验证不通过可按照提示进行修改
问题汇总请参考Q&A

2.5 将代码同步到Git上

git add .
git commit -m "pod test"
git remote add origin http://xxxxxxx/TJKit.git
push origin master

2.6 添加tag并同步

# 0.0.1,对应 xxxxx.podspec 中的s.version
git tag -m "First Version" 0.1.0
git push --tags

2.7 向本地的Repo提交podspec文件

# pod repo push [第⼀一步私有库名称] [podspec⽂文件] 
如:pod repo push MyRepo TJKit.podspec

有警告是不会通过的,如果想忽略警告,或者查看详情,可以在命令后添加以下参数

--verbose 查看详情
--allow-warnings 警告忽略
上传通过

成功了之后,~/.cocoapods/repos/xxxx文件结构如下:


image.png

如果不成功请查看Q2

2.8 更新仓库

pod repo update MyRepo

[图片上传失败...(image-da805f-1562830213674)]

3.使用私有库

xcode新建一个项目,在项目文件夹创建Podfile,创建好之后添加:

pod "TJKit",:git=> 'http://xxxxxx/TJKit.git'

然后执行pod install

Q&A

q1

.pod无法生成项目

错误如下:

/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb:27:in `<module:BuildSettingsArraySettingsByObjectVersion>': undefined method `to_set' for #<Array:0x00007f9d7912bfb0> (NoMethodError)
Did you mean?  to_s
    from /Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb:8:in `<class:XCBuildConfiguration>'
    from /Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb:4:in `<module:Object>'
    ...
    ...

解决方法:升级cocoapod

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

q2

Your configuration specifies to merge with the ref 'refs/heads/master'
from the remote, but no such ref was fetched.

项目没有初始化, 这个时候git仓库是空的,需要我们在~/cocoapods/repo/xxxx 下添加一个初始文件,例如添加个readme.md

解决方法:
检查./git/config 文件中git地址是否正确
初始化项目,执行

git config --global user.name "git用户名"
git config --global user.email "邮箱"

cd TJRepo
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

相关文章

  • iOS私有库搭建记录

    准备工作 安装cocoapod (已安装请忽略,未安装请找度娘) 创建私有的spection存放地址 创建工具类代...

  • Android-私有库搭建

    Android私有库搭建网上已经有很多教程了,这里是根据网上的文章结合自己搭建流程做下记录。 私有库搭建目的 每个...

  • iOS开发私有库的创建

    近期由于自己在玩玩私有库和公有库,记录下来自己搭建的过程。私有库可以本地和远程,这里主要是将远程库的搭建。 当然在...

  • iOS 搭建私有库

    原文链接地址: https://www.aliyun.com/jiaocheng/351149.html PS: ...

  • iOS 私有库搭建

    开始之前,先介绍一下私有库的组成(个人理解),按顺序看比较好理解。 代码仓库。即git地址,组件完整代码的存放地址...

  • maven备忘

    1. 搭建私有库 使用docker搭建私有maven库,docker image为sonatype/nexus3 ...

  • cocopods私有库的更新

    在上一篇iOS组件化开发,利用cocopods 创建自己的远程私有库讲到了如何搭建自己的私有库,这篇文章主要讲讲怎...

  • 用cocoapods搭建私有库遇到的问题

    最近要将公司项目中几个自有库用pod统一管理,分别熟悉了一下在svn和git上搭建私有库的过程。这里记录下搭建私有...

  • 私有npm库搭建 & Vue npm组件发布

    一、私有库搭建 本文私有库在linux中使用docker搭建 拉最新镜像docker pull verdaccio...

  • iOS组件化探究之私有库的创建

    iOS组件化探究之私有库的创建 iOS组件化探究之私有库的创建

网友评论

      本文标题:iOS私有库搭建记录

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