目的
私有pod库引用私有pod库或静态库
使用场景
项目组件化, 工具组件化很好实现, 但是业务组件化就没那么容易, 业务之间的解耦和与工具组件的依赖等等都是业务组件化中必须趟过的坑, 而组件之间的相互依赖是一个比较浅的坑, 所以优先趟这个坑. 我使用的组件化解决方案是使用Cocoapods统一管理各个组件, 而各个组件都是一个单独的私有pod库.
解决方案
指定Lint Source
配置spec(指定dependency)
s.dependency 'AAAName', '~> version'
指定pod spec文件校验地址(两个地址都必须)
pod spec lint AAAName.podspec --sources=‘私有specs仓库地址,https://github.com/CocoaPods/Specs.git’
引用当前私有库的podFile
中指定source为私有specs仓库地址
source “私有specs仓库地址”
PreDownloading避开检查
配置spec (指定dependency)
s.dependency ‘AAAName', '~> version'
podFile中指定
pod 'AAAName', :git => 'AAAName的仓库地址’
(pod 指定git可以Pre-downloading, 避开了podspec中dependency的检查)引用自己或第三方的framework或.a文件时
s.ios.vendored_frameworks = "xxx/**/*.framework"
s.ios.vendored_libraries = "xxx/**/*.a”
Tip:
私有pod库引用私有pod库或静态库时, 不能在.h头文件
中引用, 会导致编译不通过, 只能在.h头文件
中使用@class
在.m实现
中@import