组件化遇到的问题

swift组件在项目内使用OC调用时,需要引入头文件 :#import "Swift组件名-Swift.h"
组件由oc和Swift混编时,在组件内,oc调用swift直接导入头文件即可,swift调用oc需要导入桥接文件:#import <模块名/组件名-Swift.h>
组件内如果引用framework或者.a,需要在spec内加上
rnapi.vendored_libraries = '组件路径*.a
.a组件最好以libxxx.a形式命名,某则可能报错找不到

组件 podspec在未更新版本号推送时,项目执行pod install 引用组件可能无法引用到刚刚推送的组件,最好修改podspec的版本号
组件podspec推送时报:未找到spec仓库地址,可能是没有远程仓库权限/可能是本地没有该缓存库,该问题根本原因未找到

项目是OC、Swift混编的,podfile开启了use_frameworks!
在封装一个组件时,引用了另一个私有第三方,在组件内的.h文件导入该第三方私有库头文件时报错:include of non-modular header inside framework module

解决方案:

  1. buldsetting 中设置 Allow Non-modular Includes In Framework Modules 为 YES
    对我无用 --pass

  2. 将#import "**.h" 第三方库写在 .m文件中,而不是放在.h文件中即可
    有用,但是部分引用必须写在头文件内 --pass

  3. 检查该framework是否有module.modulemap文件,没有就生成一个,在其中导入缺失的头文件
    这个私有第三方.framework中没有生成module.modulemap文件,导致头文件无法在组件内引用,手动生成module.modulemap文件 --解决

组件SDK的头文件无法在.h中引入,原因:待分析

你可能感兴趣的:(组件化遇到的问题)