阅读 402

模块化日常:耗时的发布

主角:BKit

起因:库间互相依赖 中坑爹的 BKit 需要 CocoaPods 发版了,开心。

经过:史诗巨坑之一,不知道谁在 podspec 里拆分了无数个 subspec,还没拆好(pod lib lint 通不过,代码引用没处理好),导致 pod lib lint 的时间巨长(完整一次需要 45 分钟接近一小时你敢信...我就这么跟它玩了一天到下班前才找出原因把这一坨给删了);然后接下来就是史诗巨坑之二,这工程和它的依赖引用了 Protobuf,这库非常奇葩,依赖它的库如果需要 CocoaPods 发布,需要在 podspec 添加如下配置:

s.pod_target_xcconfig = {
    # This is needed by all pods that depend on Protobuf:
    'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1',
    # This is needed by all pods that depend on gRPC-RxLibrary:
    'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES'
  }
复制代码

就这个,玩了俩小时...因为这东西是和 subspec 的问题在一起的,一开始不知道分别是啥原因,理了好久(一天),搞完了。

结论:如果以前的维护者都不在(不是挂了)了,那么项目还是干脆重写好了。


如有任何知识产权、版权问题或理论错误,还请指正。
https://juejin.im/post/6844903548891693063
转载请注明原作者及以上信息。