组件化遇到的问题
1.如果组件化工程里依赖的framework,里面有了.a文件,pod install会报错
target has transitive dependencies that include static binaries: 报这个错误
解决办法是 在pod podfile文件里加上下面一行代码
# 依赖三方静态库需添加
pre_install do |installer|
Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
end
然后pod install 通过
然后验证的时候 pod lib lint--allow-warnings --use-libraries
2 如果集成组件报错处理 --include of non-modular header inside XXXX
解决方法:把target下 Build Settings中 Allow Non-modular includes in Framework Modules选项卡设为yes。
(这不是最好的解决方法,好的是让做这个组件的人在podspec文件里设置)
s.user_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' }
3.如果pod search xxx 自己的组件,搜索不到
解决方法:rm ~/Library/Caches/CocoaPods/search_index.json
4.如果工程集成自己制作的组件,报搜索不到,或者验证的时候报找不到这个组件
在 podfile 加上gitsource 和自己的私有库source
source 'https://github.com/CocoaPods/Specs.git'
source 'http://bj.gitlab.xxxxcom/ios-team/xxxxRepos.git'
验证的时候后面也要加上这个
5.如果 pod lib lint 或者 pod spec lint 报错
ERROR | [iOS] unknown: Encountered an unknown error (Could not find a `ios` simulator (valid values: com.apple.coresimulator.simruntime.ios-12-2, com.apple.coresimulator.simruntime.tvos-12-2, com.apple.coresimulator.simruntime.watchos-5-2). Ensure that Xcode -> Window -> Devices has at least one `ios` simulator listed or otherwise add one.) during validation.
解决方法 升级cocoaPods
sudo gem install cocoapods
然后再次验证
6.如果在组件里用到PLShortVideoKit ,需要在podspec文件里 添加 s.pod_target_xcconfig = { 'VALID_ARCHS[sdk=iphonesimulator*]' => 'PLShortVideoKit' }
或者在验证后面加上--skip-import-validation 但是这个方法不好,如果其他依赖你做的组件,都需要加这个了,所以最好在podspec文件里配置
7 pod lib lint 报错
原因: 这个问题是pod依赖的组件fourflusher与xcode版本不匹配造成的,可以使用如下命令更新解决办法: sudo gem install fourflusher8.往github上推库如果报443错误
可以更改hosts,前往/private/etc这个文件夹下,找到hosts,在最下面加上199.232.28.133 raw.githubusercontent.com
9.如果pod trunk push 报
执行 1. 执行命令:pod trunk register '12345678@qq.com' 'hhhh' --description='mac pro'
然后去邮箱里认证,然后在推就可以了
2. 在自己邮箱里面去点击,那个邮件里面的连接,就可以了(如果找不到那个邮件,多等个几分钟的。或着去垃圾箱中找找,有可能是腾讯把他等垃圾邮件了)
3. 返回终端里面继续执行命令:pod trunk push YQJLive.podspec --allow-warnings