愉 | iOS CocoaPods私有库

Posted 掘金开发者社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了愉 | iOS CocoaPods私有库相关的知识,希望对你有一定的参考价值。

先说下CocoaPods拉取开源库的原理:

  1. 在Podfile目录下执行 pod install 命令,会从本地的索引库查找该库的 .podsepc,如果本地不存在会从远程拉取最新的索引库。

使用是可以发现,首次导入一个开源库时速度较慢,之后再导入时会很快。是因为CocoaPods在本地会有一个缓存目录,存放开源库的源码,首次下载后,再次导入该库时,会直接从本地复制过去。 查看缓存列表使用 pod cache list,缓存路径为 ~/Library/Caches/CocoaPods/Pods/

私有仓库

私有库的创建

由于CocoaPods的索引仓库是开源的,所有人都可以访问。公司的项目如果也想使用CocoaPods管理源码,而不开放源码的话,我们可以通过创建私有仓库来模拟官方的Specs仓库。

步骤: 第一步:在私有git上创建一个索引仓库,例:YSMSpecs,用于存放索引文件。 第二步:将远程索引库添加到本地, pod repo addYSMSpecsYSMSpecs_source_url。使用 pod repo可以查看本地的索引仓库列表。

 
   
   
 
  1.    $ pod repo add YSMSpecs https://github.com/yisimeng/YSMSpecs.git

  2.    $ pod repo


  3.    master   // 公有索引仓库

  4.    - Type: git (master)

  5.    - URL:  https://github.com/CocoaPods/Specs.git

  6.    - Path: /Users/duanzengguang/.cocoapods/repos/master

  7.    YSMSpecs  //私有索引仓库

  8.    - Type: git (master)

  9.    - URL:  https://github.com/yisimeng/YSMSpecs.git

  10.    - Path: /Users/duanzengguang/.cocoapods/repos/YSMSpecs

 
   
   
 
  1.    $ pod lib lint

  2.    -> YSMKit (0.1.0)

  3.    YSMKit passed validation.

第六步:检查没有错误之后,推送 .podspec文件到本地的索引仓库,本地索引仓库会自动push到远程索引仓库。 pod repo pushYSMSpecsYSMKit.podspec,这一步会自动进行 pod spec lint联网检查。索引库部分完成。

 
   
   
 
  1.    $ pod repo push YSMSpecs YSMKit.podspec

  2.    Validating spec

  3.     -> YSMKit (0.1.0)

  4.    Updating the `YSMSpecs' repo

  5.    Already up to date.

  6.    Adding the spec to the `YSMSpecs' repo

  7.     - [Add] YSMKit (0.1.0)

  8.    Pushing the `YSMSpecs' repo   // 会自动推送到远程仓库


  9.    $ pod search YSMKit

  10.    -> YSMKit (0.1.0)

  11.       YSMKit is my kit

  12.       pod 'YSMKit', '~> 0.1.0'

  13.       - Versions: 0.1.0 [YSMSpecs repo]

到这里私有仓库是搞完了。

第六步如果使用 pod trunk pushYSMKit.podspec,会将索引库推送到官方的Specs仓库中。

私有库的使用

  1. 在宿主工程的Podifle文件中引入私有库: pod'YSMKit'

 
   
   
 
  1. source 'https://github.com/yisimeng/YSMSpecs.git'

  2. source 'https://github.com/CocoaPods/Specs.git'

然后执行 pod install,就可以使用了。

私有库的维护

后续需要更新维护仓库代码的流程:

  1. 在源码工程修改代码之后,修改 .podspec文件版本号,把源码提交,打上tag,推送到远程仓库。

  2. 把 .podspec文件提交到本地的私有索引库中(会自动帮我们提交到远程索引库)。

  3. 回到宿主工程,修改Podfile中的版本,执行 pod install(不行就 pod update)。

注意事项

  1. 在podfile文件中 增加 inhibit_all_warnings!,这样pod的工程不会显示任何警告。

  2. 切记:swift中需要设置好访问权限!!!

  3. 新引入一些库之后执行 pod install,会报错Build Settings,例如:引入Swift库之后经常会报的“swift version”的错误,需要去修改Build Setting,其实可以在Podfile中的 post_install中修改。

 
   
   
 
  1. post_install do |installer|

  2.    installer.pods_project.targets.each do |target|

  3.        target.build_configurations.each do |config|

  4.            config.build_settings['SWIFT_VERSION'] = '3.2'

  5.        end

  6.    end

  7. end

pre_install:编译之前可以添加修改(还没想到可以做哪些事情)。

以上是关于愉 | iOS CocoaPods私有库的主要内容,如果未能解决你的问题,请参考以下文章

iOS-CocoaPods私有库创建

iOS代码组件化(利用CocoaPods创建私有库)

iOS代码组件化(利用CocoaPods创建私有库)

CocoaPods搭建私有库

iOS组件化-利用CocoaPods拆分项目和私有化

如何利用CocoaPods创建私有库