美文网首页
iOS 私有库

iOS 私有库

作者: 金___k | 来源:发表于2018-12-03 15:46 被阅读0次

准备工作:

  1. 先检查下cocopod版本,最好版本至少在1.6.0.beta.1 及以上
  2. Git代码托管平台。比如GitHub、Gitlab、Bitbucket、开源中国、coding.net、csdn.net
1. 创建代码库和索引库
91B00982-15B9-42C6-B445-C0BEC9EC3EA6.png 238A85C9-B5B8-4466-A25C-0C4CC9BB35FD.png

:索引库有一个就可以了,这两个不需要写任何东西,创建好扔一边就行了。

2. 创建本地索引库

在终端执行下面命名就行

cd .cocoapods/repos
pod repo add 索引库名字  索引库地址

索引库里面用上面创建名字
地址在创建后会有比如https://gitlab.com/xxx/PrivateSpec.git

7D591178-CF0C-453C-BEB0-EA7CF6B4F608.png
执行一下ls 或者前往 .cocoapods/repos 看添加是否成功
2. 创建项目工程文件

终端 cd 到你要创建到路径下面,然后执行

pod lib create 代码库名字

固定步骤,这个就直接偷图了


2007398-96de8c96c322a3ef.png

然后我们会得到一个项目,不修改的话 我们会默认提交
项目名/class下面2级的文件,如果有需要可以自己更改source_files的格式
提交之后所有文件都会在一个文件夹下面,强迫症肯定不能忍,这个后面说,一般没什么必要改了,也是因为比较麻烦。

3. 准备提交

把需要提交的代码放到路径下面,然后修改.podspec文件,只挑了我用到的一些要修改的来说明

s.name         = "BaseLib" #工程的名字
s.version      = "1.0.0"  #工程的版本
s.summary      = "Gray's modularization BaseFramework."  #工程的摘要
s.description  = "Gray's BaseFramework demo"  #工程的描述
s.homepage     = "http://gitlab.com/作者名/BaseLib"  #工程的首页
s.swift_version = '4.0'  #工程的swift版本
s.ios.deployment_target = "8.0"  #工程的编译版本
s.source       = { :git => "#工程的git地址", :tag => "#{s.version}" } #创建的代码库git地址 https://XXXX.XXX.git
s.source_files  = "Classes", "Classes/**/*.{h,m}"  #工程需要引入的文件
s.exclude_files = "Classes/Exclude"  #工程不需要引入的文件
s.public_header_files = "Classes/**/*.h"  #工程需要暴露出来的头文件
s.resources = "Resources/*"  #工程需要引入的资源文件(图片,xib等)
s.resource_bundles = {'Resources' => 'XXX.framework/Resources/XXX.bundle'} #工程需要引入的bundle
s.frameworks = "ImageIO"  #工程依赖的framework
s.vendored_frameworks = [] #工程依赖的第三方framework
s.libraries = "iconv", "xml2"  #工程依赖的library
s.vendored_libraries = []  #工程依赖第三方的library
s.dependency "AFNetworking", "~> 3.0"  #工程依赖的第三方库
 

代码写好,podspec修改好就开始提交了,有些地方说验证修改后的podspec,但是因为改过很多次了 所以觉得没什么必要

4. 提交

cd 到项目文件夹,不是Example文件夹
如果是第一次提交的话

cd existing_folder
git init
git remote add origin https://gitlab.com/xxx.git

不是第一次就从这开始

cd existing_folder
git add .
git commit -m "注释"
git pull origin master(先拉一下代码,防止多人开发的时候别人有提交的代码)
git push -u origin master
git tag 1.0.0
git push origin 1.0.0

上传成功后 就可以在gitLab tag1.0.0下面看见代码,这个时候还是不能用的,还需要提交索引库

cd existing_folder
pod repo push PrivateSpec BaseLib.podspec

格式是pod repo push +索引库名字 +.podspec文件名
这个过程会有点小长,如果有Error 就按提示改就行了,一般都会很顺利

这个地方常见问题

如果私有库添加了静态库或者dependency用了静态库需要加上--use-libraries
想看见更详细的信息 后面加上 --verbose
忽略警告--allow-warnings
索引库地址--sources='xxx.git'
如果是OC和swift 的混编 加上--use-modular-headers(这个地方官方文档原话是Lint uses modular headers during installation..)
具体参考cocopod Command-line Reference文档

最后格式可能是
pod repo push PrivateSpec BaseLib.podspec --verbose --allow-warnings --use-libraries --use-modular-headers
这个就看 项目需求吧

4. 使用

和正常cocopod 的Podfile使用差不多的,在最前面加上

source 'https://github.com/CocoaPods/Specs.git'
#这里用的是索引地址
source 'https://gitlab.com/xxx/privatespec.git'

然后就可以

  pod 'BaseLib', '~> 1.0.0'

也有人把sorece 写在pod后面,这个就看个人习惯了

相关文章

网友评论

      本文标题:iOS 私有库

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