OC和swift混合工程更新库时报:target has transitive dependencies that include statically linked binaries。有时间报的错误是:“use_modular_headers!globally in your Podfile, or specify:modular_header`。
一般都是建议在 Podfile 文件添加 use_frameworks! ,有时候还会建议添加 use_modular_headers! ,那这两个标记位的作用是什么
我们知道 Podfile 的作用是处理 CocoaPads ,而 use_frameworks!告诉 CocoaPods 你想使用 Framework 而不是静态库,而默认由于 Swift支持静态库,因此有一开始 Swift 必须使用 Framework限制
态库和 Framework区别在于:

*.a 的静态库类似于编译好的机械代码源代码和库代码都被整合到单个可执行文件中,所以它会和设备架构绑定,并且不包含源文件比如图片
Framework 支持动态库、头文件和资源文件封装到一起的一种格式,其中动态库的简单理解是:不会像静态库一样被整合到一起,而是在运行或者运行动态链接
另外一个配置 use_modular_headers! ,它主要是将 pods 转为 Modular,因为 Modular 是可以直接在 Swiftimport ,所以不需要再经过 bridging-header桥接
开启 use_modular_headers! 之后,会使用更严格header 搜索路径开启pod 会启用更严格搜索路径生成模块映射,历史项目可能会出现重复引用问题,因为在一些老项目里 CocoaPods利用Header Search Paths 来完成引入编译,当然使用 use_modular_headers!可以提高加载性能和减少体积。
一种解决方法:在Podfile文件中使用use_frameworks!,把原来的含有静态库的私有库或公有库拖入工程。该种方式可能需要修改头文件引入方式。这种方式处理简单
另一种解决方法:在Podfile文件中使用use_modular_headers!。在targets->build settings->enable bitcode配置成NO;targets->build settings->built active architecture only->debug 选择NO;project->build settings->built active architecture only->debug 选择NO。这样配置好后,可能有一堆报错,让后修改完就好了(如原来self.className报错,修改为self.description就好了)。我当时把两个app整合在一起可是花了两天的。

pods更新代码时的报错

-> Using libwebp (1.2.4)
  - Running pre install hooks
[!] The 'Pods-FanHuaNetApp' target has transitive dependencies that include statically linked binaries: (/Users/apple/dykj/工作/FanHuaNet-swift/Pods/PayManager/aliPay/Frameworks/AlipaySDK.framework and /Users/apple/dykj/工作/FanHuaNet-swift/Pods/PayManager/weChat/libWeChatSDK.a)

原文地址:https://blog.csdn.net/jia12216/article/details/128199617

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_22392.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注