首先,你得有个私有仓库.将需要的代码尽情装进去吧.
1.创建podspec文件
该文件用于描述当前代码仓库的具体信息:name,version,sourceFile等.
pod spec create podName
编写podspec文件
Pod::Spec.new do |s|
s.name = "podName" #名字
s.version = "0.1.0" #版本号
s.summary = "Custom Category" #简短的介绍
s.homepage = "https://github.com/Damonvvong/DWCategory" #主页,这里要填写可以访问到的地址,不然验证不通过
s.license = "MIT" #开源协议
s.author = { "Damonwong" => "coderonevv@gmail.com" } #作者信息
s.social_media_url = "http://weibo.com/damonone" #多媒体介绍地址
s.platform = :ios, "7.0" #支持平台及版本
s.source = { :git => "ssh://github.com/Damonvvong/DWCategory.git", :tag => s.version }
s.source_files = "DWCategory/**/*" #代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则用逗号分开,如果需要在项目中分组显示,这里也要做相应的设置
s.requires_arc = true #项目是否使用 ARC
s.resources = "resource/**/*" #资源文件(*.xib,*.png等)
s.dependency "JSONKit", "~> 1.4" #当前依赖库,pod install时会自动下载该库
end
注意: 1. s.version一定要和tag的版本一致(pod是根据git地址找到git tag然后找到对应的pod version).打tag之前一定要把spec等各种配置完成之后再push,否则会造成能显示出tag记录,但是被别人指定tag引用时引用版本错误的问题。先push该文件之后,再push –tags
2. 将想要被pod管理的文件放置在固定的文件夹下,同时修改s.source指定到源代码的路径
3. podspec文件编辑不要用文本编辑器,可以用xcode打开编辑。双引号、单引号一定要用英文格式,中文格式会不识别导致失败
4. s.source_files路径以你的私有仓库文件名开头(podspec也是)
5.s.dependency最好还是你的项目用到什么就写上什么,否则容易出现问题。比如:HHSC->HHCoreFramework->SnapKit这样的依赖链条,在HHSC项目中可以找到SnapKit所以没有问题,但是如果HHSwfit->HHSC->HHCoreFramework->SnapKit这样的单依赖链条就会出现问题,报错HHSC中的SnapKit找不到。尽管HHSC自己项目运行没问题,但还是需要在HHSC的dependency中写入SnapKit,这样是为了自己在被别人当做pod使用时可以识别依赖。
2.push修改后的文件
注意:一定要上传podspec文件
git add .
git commit -m “”
git pull
git push
3.打Tag
git tag -m “注释” 0.0.2
git push –tags
注意:如果不打tag,会提示
Pre-downloading: HHSC
from ssh://git@git.hh-medic.com/HHSC
[!] Unable to find a specification for ‘HHSC’.
[!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.
[!] Unable to load a podspec from HHSC.podspec
, skipping:
Pod::DSLError
另外,如果提示找不到XXX.podspc,如下
Pre-downloading: HHSC
from ssh://git@git.hh-medic.com/HHSC
[!] Unable to find a specification for ‘HHSC’.
[!] Unable to load a podspec from HHSC.podspec
, skipping:
Pod::DSLError
可以删除.podspec文件,然后再重新执行创建podspec文件的命令创建一份,添加原有配置就好
4.修改Podfile文件(与公有pod的格式不同,私有只能按照下面的设置,tag可省略)
pod ‘podName’ , :git => “ssh://git@123.57.250.150/pacssvr.test.git”, :tag => ‘0.0.5’
# s.name source version
5.添加资源文件
1.添加xib
在pod中,xib不能当成源文件(即s.source_files),否则pod install之后会报错”Unable to run command ‘StripNIB xxx.nib’ – this target might include its own product”.所以必须要将xib放入资源文件中(即s.resources)
使用此方式后,虽然可以在不改变原xib任何代码的情况下直接使用,但是需要将xib中使用到的图片文件拷贝到当前项目的Assets.xcassets中
2.添加图片
方式1:类似于xib,不需其它操作,将用到图片添加到当前项目Assets.xcassets中;
方式2:将图片放入s.Resource(或者s.resource_bundles)中
注意:通过方式2放入图片,如果xib或者sb中想要用到图片,需要图片名称+.后缀名。如果图片带有@2x的字样,需要去掉~