gpt4 book ai didi

objective-c - 在 swift 中创建依赖于另一个 objective-c pod 的 pod

转载 作者:行者123 更新时间:2023-12-04 04:09:52 29 4
gpt4 key购买 nike

Overview of my condition

正如我在图片中解释的那样,我想在 swift 中创建 Pod 库,它有另一个用 Objective-c 编写的 Pod 库依赖项。
现在我知道要在 swift 中使用 objective-c 代码,我们需要桥接文件,我也创建了它。但是当我将它设置到 Pod 的构建阶段时,我得到了这个错误 <unknown>:0: error: using bridging headers with framework targets is unsupported

我在互联网上得到提示,我应该将 .h 文件放入 pod-umbrella.h 文件,但这也给了我错误 Include of non-modular header inside framework module 'DemoPod'

  1. 如果您过去遇到过类似问题并已解决,请帮助我。
  2. 也欢迎提出一些提示/建议。

如果你想玩的话,这是我为你准备的 demopod 项目。
Demo Pod Project

编辑根据 Ashsis 的建议,我将以下代码添加到 DemoPod.modulemap

framework module AdaptiveCard {
umbrella header "/Users/jageen.shukla/Documents/Project/ai answer/DemoPod/Example/Pods/AdaptiveCards/AdaptiveCards.framework/Headers/ACFramework.h"
requires ios
export *
}

但我仍然无法构建项目,因为它在找不到模块“AdaptiveCard”的目标项目中给我错误。 enter image description here

我更改了 DemoPod.modulemap 中的代码

framework module DemoPod {
umbrella header "DemoPod-umbrella.h"

// Solution 2
framework module AdaptiveCard {
umbrella header "/Users/jageen.shukla/Downloads/DemoPod/Example/Pods/AdaptiveCards/AdaptiveCards.framework/Headers/ACFramework.h"
export *
module * { export * }
}
// ----

export *
module * { export * }
}

现在我可以编译我的项目了。但我不确定我在做什么是好事还是坏事?另外我也不知道为什么要提到自适应卡头文件的“绝对路径”。
最新代码:[Demo_2][4]https://drive.google.com/file/d/1Xve0DUAy4bQ7sx4d3H8WLbJJwTqlJnCt/view?usp=sharing

最佳答案

仅建议在 App Target 和 App Test 目标中使用桥接 header 以快速访问 objective-c 和 CPP 文件。当涉及静态库或框架时,您应该使用 modulemap 将 Objc 和 CPP 功能公开给 swift 库。请在此处检查代码实现如何使用 modulemap:https://github.com/ashislaha/Swift-ObjectiveC-Interoperability

关于objective-c - 在 swift 中创建依赖于另一个 objective-c pod 的 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61914253/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com