1.在Gitblit上创建一个自己的远程私有索引库,用来存放私有框架的podspec文件
image.png
- 创建本地的私有索引库文件夹,并与远程私有索引库进行关联
2.1添加本地私有索引库并与远程私有库
$ pod repo add IOSMavenSpec http://wy@dnsdk.vimedia.cn:8080/r/IOSMavenSpec.git
image.png
2.2 再次查看本地已存在的索引库
pod repo
3 在Gitblit创建一个用来存放项目基础组件的仓库IOSMaven
参见第一步
4 快速创建模板工程(模板来自github)
4.1 快速创建模板测试工程 在/Users/eddy/Desktop/IOSMaven路径下
$ cd /Users/eddy/
$ pod lib create IOSMaven
4.2 本地验证podspec
pod lib lint --allow-warnings --use-libraries --verbose
验证不过的话;可以添加--verbose查看详细错误信息
4.3 提交本地代码
$ git status
$ git add .
$ git commit -m 'first commit'
$ git remote add origin '[http://wy@dnsdk.vimedia.cn:8080/r/IOSMaven.git](http://wy@dnsdk.vimedia.cn:8080/r/IOSMavenSpec.git')
(将本地库与远程代码仓库进行关联)
$ git push origin master (提交到远程仓库)
$ git tag '0.1.0' (要与IOSMaven.podspec文件中的tag值保持一致)
$ git push --tags(将tag提交到远程)
4.4 验证远程是否正确
pod spec lint --allow-warnings(验证远程是否正确)
5 将podspec文件提交到本地的私有索引库
$ pod repo push IOSMavenSpec IOSMaven.podspec
5 组件化
5.1、抽离一个基础组件Tools
spec.default_subspecs = 'Tools' #默认组件
spec.subspec 'Tools' do |ss|
ss.ios.deployment_target = '9.0'
ss.vendored_frameworks = 'IOSMaven/Tools/*.framework'
end
5.2、模块组件
spec.subspec 'Ads' do |ss|
ss.subspec 'Headline' do |hl| #头条广告
hl.ios.deployment_target = '9.0'
hl.vendored_frameworks = "IOSMaven/Ads/Headline/*.framework"
hl.resource = "IOSMaven/Ads/Headline/*.bundle"
hl.dependency 'Bytedance-UnionAD', '~>2.4.6.7'
hl.dependency 'IOSMaven/Tools'
end
end
加载xib资源需要制作bundle 组件化framework加载xib
6 引用远程库
source 'http://wy@dnsdk.vimedia.cn:8080/r/IOSMavenSpec.git' #远程私有库地址
source 'https://github.com/CocoaPods/Specs.git' #公有库地址
platform :ios, ‘9.0’
use_frameworks!
target ‘CocoaPodDemo’ do
pod 'IOSMaven/Ads/Headline'
pod 'IOSMaven/TJ/Headline'
pod 'IOSMaven/Notice'
pod 'IOSMaven/Activity'
pod 'IOSMaven/Social/weixin'
pod 'IOSMaven/AppleLogin'
end
网友评论