iOS组件化:坑点
作者:互联网
1. 当组件继承于第三方库时需修改导入方式
错误引入: #import "AFHTTPSessionManager.h"
正确引入: #import <AFNetworking/AFHTTPSessionManager.h>
执行如下命令时会提示 ”xxx.h“ file not found
pod lib lint xx.podspec
2. 执行 pod spec lint xxx.podspec
时,如果报错无法找到某个依赖库,请添加如下配置参数
pod spec lint xxx.podspec --use-libraries
发布时也需添加如下
pod trunk push xxx.podspec --use-libraries
pod repo push repo_name xxx.podspec --use-libraries
–use-libraries:表示使用静态库或者是framework,这里主要是解决当我们依赖一些framework库后校验提示找不到库的时候
扩展参数
–verbose:有些非语法错误是不会给出错误原因的,这个时候可以使用–verbose来查看详细的验证过程来帮助定位错误。
–allow-warnings:表示允许警告。
3.[!] Authentication token is invalid or unverified. Either verify it with the email that was sent or register a new session.
pod trunk register 'liuyongjiesail@icloud.com' 'liuyongjie' --description='macbook pro'
4.私有库中依赖了静态库.a文件,路径配置正确,仍报错找不到该库,如下:
ld: library not found for -lRangersAppLog-Lite
如上是在导入TEA静态库 RangersAppLog-Lite.a
文件后的报错信息
原因:制作私有库时静态库命名必须以”lib“开头
解决方案:修改静态库名称为”libRangersAppLog-Lite“。
5. 静态库导入后,依赖库也已配置,编译通过,运行报错如下:
unrecognized selector sent to class
静态库中方法报错找不到该方法
原因:.podspec文件少了 -ObjC 编译配置,并且少bitcode的配置。
解决方案:在.podspec中配置编译项:
s.xcconfig = { "OTHER_LDFLAGS" => "-ObjC", "ENABLE_BITCODE" => "NO"}
6. 私有库中有些依赖库中含有.a静态库,执行 pod install 报错:
[!] The 'Pods-MXStatService_Example' target has transitive dependencies that include statically linked binaries: (/Users/liuyongjie/Documents/233模块&组件/MXStatService/Example/Pods/RangersAppLog/RangersAppLog/Core/libRangersAppLog_Core_ios.a)
.a文件无法链接到
原因:podfile文件中指定的是 use_frameworks! ,如果删除此标识,那么frameworks就无法pod了。frameworks与.a静态库不可共存
解决方案:如果私有库组件需依赖.a静态库,又依赖其他framework(如:AFN),那么只能将 .a静态库手动集成了
标签:use,podspec,坑点,xxx,iOS,静态,报错,组件,pod 来源: https://blog.csdn.net/Yj_sail/article/details/104513016