本地私有库有存在问题
1.需要主动指明路径 如果调整路径,需要修改相关配置
2.版本升级不好维护
3.不利于多人开发
1.登录coding.net
- 因为gitHub虽然可以开放了私有库但是限制了合作人数,只能小团队开发
- 使用coding.net
- 注册coding.net 账号
2.创建私有库
- 完成仓库创建
- 查看地址 复制地址
进行管理
- 终端打开
- pod repo add XXX 地址
- 用https 后再输入自己的账号密码就可以了 注意 username 是账号 (邮箱地址)不要输入自己的昵称
- 所以我用的是ssh 公钥地址 报错了 是因为我没有配置 ssh
配置公钥
- 终端 输入 ssh-keygen
- 输入电脑密码 两次
- 然后在.SSH文件里面就会产生id_rsa和id_rsa.pub两个文件,路径如下:
coding.net 配置公钥
- 个人账户 新增公钥
- 然后我们把id_rsa.pub公钥的内容加进去 公钥内容里面,如图所示,添加成功
创建私有远程仓库
- 1.创建私有库的索引库:存放spec文件的地方,用于索引到代码的位置
- 2.创建私有库的代码库:存放真正的组件代码的地方
将创建的索引库添加到本地cocoapods仓库
终端 重新输入
pod repo add WLFSpecs 远程索引仓库地址
复制代码
- pod repo 发现已经添加成功
创建本地的pod模板库
- cd 到空的文件夹
- pod lib create WLFBase
- 创建一个Example工程
- 替换核心代码
- cd 到Example
- pod install
- 修改podspec 文件 把hompage 和 source 修改正确
- 如下
Pod::Spec.new do |s|
s.name = 'WLFBase'
s.version = '0.1.0'
s.summary = 'WLFBase.'
s.description = <<-DESC
WLFBase.基础库,分类等
DESC
s.homepage = 'https://wlfade.coding.net/p/xxx/d/xxx/git'
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'Wlfade' => 'xxxx@qq.com' }
s.source = { :git => 'https://e.coding.net/xxx/xxx/WLFBase.git', :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.ios.deployment_target = '9.0'
s.source_files = 'WLFBase/Classes/**/*'
# s.resource_bundles = {
# 'WLFBase' => ['WLFBase/Assets/*.png']
# }
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'AFNetworking', '~> 2.3'
end
复制代码
- pod lib lint 验证podspec 是够通过 XXXLib passed validation 认证成功
pod lib lint参数解析:
--sources:需要引⽤的spec,默认只依赖master,如果当前pod依赖了私有库,需要将其对应的spec包含进来,不然会报找不到对应库的问题。参数可以是本地spec的名称,也可以是git地址。
--allow-warnings:有警告会通过不了,如果警告是⽆关紧要的,可以加上,让检测通过。
--verbose:打印详细的检验过程
--use-libraries:⼯程或者依赖⾥⾯了静态库(*.a⽂件)或者是framework
pod lib lint 表示在本地校验索引文
pod spec lint 表示在本地和远程都校验索引文件
提交自己写的WLFBase组件代码到远程私有仓库中
方法1
- clone 代码到新的空的文件夹
git clone 组件仓库地址
复制代码
- 把之前做的那个这些文件复制过去
- git add . //添加代码到缓存区
- git commit -m '1' //提交
- git push 提交远程仓库
方法2
-
git add .
-
git commit -m '注释'
-
git remote add origin 组件仓库地址.git
-
git remote
-
git push origin master //这个可能会失败
-
git push -f orgin master //强制推送
-
pod spec lint //验证远程仓库 但是现在还是不成功的因为没有打tag
提交标签
- git tag '0.1.0' //和podspec 保持一致
- git tag /显示0.1.0 说明本地有个标签了 这里的tag 要和 podspecs 保持一致 不让不会成功的
- git push --tags
- 这里就多了一个tag
- pod spec lint //验证远程仓库
- 显示 xxx.podspec passed validation.说明成功
向私有索引库提交podspec
- pod repo push WLFSpecs WLFBase.podspec //这里其实会自动校验podspec 的远程验证
- 说明已经创建私有组件库和私有索引库已经成功了
使用
- 重新创建一个测试项目 test
- 创建podfile
source 'https://e.coding.net/xxx/xxx/xxx.git' //远程私有索引库地址
source 'https://cdn.cocoapods.org/'
platform :ios, '9.0'
target 'Test' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
pod 'WLFBase' //pod 组件名
end
复制代码
- pod install
- 导入成功使用