【问题标题】:Static framework linked to Cocoapod not found in Main project在主项目中找不到链接到 Cocoapod 的静态框架
【发布时间】:2023-03-29 02:25:01
【问题描述】:

我正在尝试通过 Carthage 将静态框架 (Moya) 添加到我的私人 Cocoapod 项目中。

我的目标是将 Moya 作为静态框架包含在我的私有 Cocoapod (SwiftModel) 中,并在我的主项目中也使用 Moya(因为 SwiftModel 依赖于它)。

我已通过执行以下步骤将 Moya 添加到我的框架中:

  1. podspec 文件中的链接框架

    s.vendored_frameworks = 'SwiftModel/Carthage/Build/iOS/Moya.framework'

  2. 将 Moya 添加到私有框架(Link Binary With Libraries)

所以在我的 Pods 项目中它看起来像这样:

尝试将路径添加到“框架标题搜索路径”没有进行任何更改。我已经尝试将它添加到主项目和 pods 项目中。

当只是构建私有 pod 时,一切正常,并且 Moya 被识别。但是,如果我想构建主项目(包括我的私人 pod),我总是会收到此错误:

没有找到 Moya 架构 arm64 的框架

【问题讨论】:

  • Cocoapod 和 Carthage 是 2 个不同的东西,当您使用 Cocoapod 时,您不需要显式地将框架文件添加到您的项目中,如果您使用 Carthage 添加它,那么您需要将 .Framework 文件添加到您的项目中项目的 Link Binary With Libraries 部分不在 Pod 内。
  • 我明确地想添加框架,因为我想减少主项目中的编译时间。然而,我自己的框架被集成为私有 pod,但我的私有 pod 使用其他框架,如 Moya,它们被集成为框架。 (请参阅第 2 步)
  • 尽管您需要将其添加到您的项目中,而不是在 Pod 项目中。将它从 Pod 项目移到你的项目中。
  • @DipenPanchasara 不幸的是,在主项目中将其添加到 Link Binary with Libraries(包含 Moya.framework 和 Pods.framework)没有帮助,仍然是同样的问题。
  • Podfile 和 Pod 项目中删除它。仅将其保存在 Project 的 Link Binary with Libraries 中。不要把它放在两个地方。

标签: swift cocoapods carthage moya


【解决方案1】:

正如您的错误所述

没有找到 Moya 架构 arm64 的框架

这意味着 Moya 不适用于 arm64 架构,但您的主项目有以下架构:- arm64、armv7、armv7s。 Remove the arm64 来自您的主项目的有效架构。

  • 还可以尝试在其他链接标志中添加-Objc
  • 尝试将 libz 添加到项目的链接库部分

iOS 支持矩阵:-

【讨论】:

  • 不幸的是,我无法删除我主要项目的 arm64 架构。如果 Moya 不支持 arm64 也会令人惊讶。
  • 您是否尝试过我以项目符号格式编写的其他选项。
  • 是的,不幸的是错误仍然发生。我不确定 Cocoapods(供应商的框架)是否有可能。
  • 我刚刚在official moya github 上发现了类似的问题。 (关于carthage update --platform iOS --no-use-binaries 和删除文件夹。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多