基础命令
1、pod lib lint 校验本地仓库
2、pod spec lint 校验远程仓库
3、pod repo push 推送代码
4、pod lib create xxxx 创建组件
把远程仓库添加到本地repo
pod repo add 私有组件名称 索引库远程地址
把创建的仓库Spec推送到远程仓库中
pod repo push 索引库名称 podspec文件全称
Help
swift 引用OC头文件 处理
–skip-import-validation
动静态framework、.a文件处理
-use-modular-headers
–use-libraries
打印log
-verbose
过滤所有警告
–allow-warning
podspec添加私有库,找不到路径提示报错,可以这里添加spec仓库地址
–sources=‘xxxxxxxx’
–no-clean
问题:
1、 Error:[xxx/xxx(仓库或者是子仓库名称)] xcodebuild: Returned an unsuccessful exit code
依赖资源文件 报错 没有明确的引用问题或者是代码报错。
在校验本地仓库 包含多个子仓库的状态下,需要单独隔离出需要依赖framework或者是.a文件的子仓库
podspec 中添加
s.static_framework = true
podSpec 中子仓库示例
s.subspec 'Test' do |ss|
ss.source_files = 'Test', 'Test/Classes/text/*.swift' // 文件路径地址 同podsepc同级向下
ss.frameworks = 'SystemConfiguration','Security' // 依赖的系统framework
ss.libraries = 'c++','z' // 依赖的系统tbd 添加不需要 'lib' 例如 libc++ 直接为c++即可 英文逗号分隔
ss.vendored_frameworks = 'Test/Framework/xxxxx.framework' // 需要依赖的三方framework
ss.vendored_libraries = 'Test/Framework/xxxxx.a' // 需要依赖的三方.a文件
end
本地校验可添加动静态文件过滤
pod lib lint xxx.podspec --verbose --use-libraries --allow-warnings --no-clean --skip-import-validation
同理校验远端仓库
pod spec lint xxx.podspec --verbose --use-libraries --allow-warnings --no-clean --skip-import-validation
2.生成的组件类或者是函数方法无法调用
生成的组件需要添加 open 外部才能调用此类和相对开放的函数方法
open class XXXX: NSObject {
open class func XXXX(testParam: String = "") {
}
}
3.pod lib lint/repo push时 不支持i386编译&只能真机运行的库 报错
eg:
** BUILD FAILED **
The following build commands failed:
Ld /Users/xxxxx/Library/Developer/Xcode/DerivedData/App-cbtcjpngyptfrxehblkjhtzgolpe/Build/Intermediates.noindex/Pods.build/Release-iphonesimulator/xxxx.build/Objects-normal/arm64/Binary/xxxx normal arm6
可在podSpec 仓库下面添加
s.pod_target_xcconfig = { ‘VALID_ARCHS[sdk=iphonesimulator*]’ => ‘’ }
如果项目已经设置 pod_target_xcconfig,添加到已有值的后面。设置此处将在 模拟器编译时不产生二进制文件。
pod lint 命令添加 –skip-import-validation 参数,lint 将跳过验证 pod 是否可以导入。
pod repo push 命令添加 –skip-import-validation 参数,push 将跳过验证 pod 是否可以导入。
参考文档:解决pod lib lint/repo push不支持i386编译&只能真机运行的库