其他分享
首页 > 其他分享> > iOS组件化:坑点

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静态库手动集成了

sailip 发布了93 篇原创文章 · 获赞 49 · 访问量 33万+ 私信 关注

标签:use,podspec,坑点,xxx,iOS,静态,报错,组件,pod
来源: https://blog.csdn.net/Yj_sail/article/details/104513016