组件A中OC代码如果调用组件B中的Swift代
答案:在组件A中需要调用组件B的类中@import B即可
新建本地库
步骤一 ```pod spec create AnyComponent```
步骤二 ```配置podspec文件```
步骤三 ```podfile中配置本地库路劲```
降低Xcode编译时间
方案一```移除podspec中该命令,"SWIFT_COMPILATION_MODE": "wholemodule",该命令导致每次当前库每次运行都要编译一遍```
xxx_umbrella.h文件提示找不到OC类的头文件
错误提示如下```'xxxObjcHeader.h' file not found```
场景```这通常发生在Pod库A中有Swift和OC代码,但podspec文件中未将该OC文件定义到头文件中```
解决方案参考如下:
方案一:```【spec.public_header_files = "Class/../andyFile.h"】修改podsepc文件之后,并pod install```
方案二:```https://stackoverflow.com/questions/30355133/swift-framework-umbrella-header-h-not-found```
pod lib lint验证失败,提示Swift版本问题
可以在命令后面指定版本号
pod lib lint prcject.podspec --swift-version=5.0 –verbose
也可以在podspec中配置
spec.swift_version = '5.0'
pod spec lint失败,The source_files pattern did not match any file.
如果source_files路劲配置没问题,绝逼是CocoaPod缓存导致的问题
前往文件路劲/Users/xxx_YourName/Library/Caches/CocoaPods/Pods/External/中,找到你的pod库,将你本地仓库中的库文件直接拷贝至CocoaPods缓存中
pod spec lint失败,提示Dependency错误
验证时如果引用其他库,需要指定对应库的spec源仓库地址,如果涉及公司私有仓库spec,则sources里需要添加
- ERROR | [iOS] unknown: Encountered an unknown error (Unable to find a specification for `SnapKit` depended upon by `xxx`
pod lib lint Andy.podspec --sources='http://xxx.xxx.com/xxx/specs.git, git@github.com:CocoaPods/Specs.git' --swift-version=5.0 --allow-warnings
Podfile中use_frameworks!用途
bundle资源问题
podfile中添加了use_frameworks!
将podfile中依赖的三方库通过动态库的方式引入到项目中,不会将三方库的可执行文件直接拷贝至项目的可执行文件中,可以查看项目的可执行文件大小比较小,bundle资源会在自己三方库的目录下
podfile中 不 添加use_frameworks!
将podfile中依赖的三方库通过静态库的方式引入到项目中,会直接将三方库的二进制文件和项目的二进制文件写在一个可执行文件中,此时项目的可执行文件大小比之前大很多,bundle资源会在ipa包的根目录下
静态库和动态库区别
静态库:静态链接库.a 在编译时会将库copy一份到目标程序中,编译完成之后,目标程序不依赖外部的库,也可以运行 缺点是会使应用程序变大
动态库:动态链接库.dylib 编译时只存储了指向动态库的引用。 可以多个程序指向这个库,在运行时才加载,不会使体积变大, 但是运行时加载会损耗部分性能,并且依赖外部的环境,如果库不存在或者版本不正确则无法运行
查看本地Pod缓存并清理
// 查看本地所有Pod缓存命令
pod cache list
// 查询指定的本地Pod库缓存, name你查询的pod库名
pod cache list | grep name
// 清除指定本地Pod缓存, name你查询的pod库名
pod cache clean name
podspec中xcconfig配置影响范围
// 影响范围:自己pod库和使用方(壳工程)
spec.xcconfig
// 影响范围:自己pod库
spec.pod_target_xcconfig
// 影响范围:使用方(壳工程)
spec.user_target_xcconfig