准备工作:
- 先检查下cocopod版本,最好版本至少在
1.6.0.beta.1
及以上 - 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
执行一下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后面,这个就看个人习惯了
网友评论