gpt4 book ai didi

ios - Swift框架依赖于cocoa pod

转载 作者:IT王子 更新时间:2023-10-29 05:06:40 25 4
gpt4 key购买 nike

使用最新版本的 cocoa pods (0.36) 我可以将用 swift(例如 Alamofire)编写的 cocoa pods 嵌入到我的 swift 项目中。现在在项目中引入了自己的自定义框架,也想依赖Alamofire。

为了实现这一点,我所做的是选择将 pods 框架作为依赖项添加到我的框架中:

为我自己的嵌入式 Swift 框架(Swift 模块)选择目标,并在“链接的框架和库”的“常规”选项卡中,我将“Pods.framework”添加为“必需”。

但是,这还不足以进行编译,因为我自己的 swift 框架中的类无法“导入 Alamofire”,因为它未被识别为“可用框架”。

将 Pods.debug.xcconfig 和 Pods.release.xcconfig 文件添加到我自己的 swift 框架目标的配置中,换句话说,更改build设置以执行所有更改,即 cocoa pods 对构建所做的更改我的 iOS App 目标设置,解决了问题。

现在构建没有问题。它在模拟器中运行也没有问题,我自己的嵌入式 swift 框架成功地使用了 cocoa pods 添加的框架。

但是,如果我在设备上运行相同的程序,它可以毫无问题地编译和安装,但随后在启动时崩溃并出现 fatal error :

dyld: Library not loaded: @rpath/Pods.framework/Pods
Referenced from: /private/var/mobile/Containers/Bundle/Application/32D2F1F8-679F-4A5F-8159-28F1C800D0C6/TestingFrameworks.app/Frameworks/mySwiftFramework.framework/mySwiftFramework
Reason: image not found

显然,并非 cocoa pods xcconfig 文件中的所有设置都适合添加到我的自定义 swift 框架的build设置中。

但为什么它在模拟器中工作呢?更重要的是,我需要更正的build设置是什么?

对我来说,我似乎需要更改此build设置:

PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods

其他的...

最佳答案

我发现了问题。嵌入式框架的 Frameworks/文件夹中根本没有 pods.framework。

这是因为 Pods-frameworks.sh 实际上并没有将内容复制到正确的目录中。

我设法通过以下方式解决了这个问题:

  1. 从构建阶段移除无用的 Embed Pods Frameworks
  2. 添加目标设置为框架的复制文件

enter image description here

就是这样!

关于ios - Swift框架依赖于cocoa pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29126835/

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