ld: 未找到框架 Pods

ld: framework not found Pods

我正在尝试向我的 IOS 项目添加一个框架,但是当我构建时,我总是收到相同的消息:

ld: framework not found Pods

clang: error: linker command failed with exit code 1 (use -v to see invocation)

我试图删除我的 Pods 目录,然后 运行 pod install 我打开 .xcworkspace 就像它写在 pod 安装的日志中一样,我在 xcode 上清理项目然后尝试构建但它不会工作..

我的播客文件如下所示:

xcodeproj '/Users/guillaume/project/Mobile/iOS/FoodPin/FoodPin.xcodeproj'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'SwiftHTTP', '~> 0.9.2'

我的 xcode 版本是 6.3.1

谢谢,

在文件夹 PodsProject Navigator 中,我有一个 Pods.framework 是红色的。它也出现在 Linked Frameworks and Libraries 中。我删除了两个引用,错误消失了。

TL;DR

删除 Pods.framework 在:

  • 文件夹名为 Pods
  • Linked Frameworks and Libraries

我通过删除位于 project navigator 文件夹 Frameworks 中的红色 .framework 文件来清除此错误。我认为这也会自动删除 General 设置的 Linked Frameworks and Libraries 部分中相应的红色条目。

我一直在清理/重新安装 pods 以解决另一个问题。也许这些红色的框架文件和条目只是以前的 pod 安装遗留下来的?

这通常是因为打开的是 .xcodeproj 文件而不是 .xcworkspace。

当您第一次 运行 'pod install' 时,它会创建一个 .xcworkspace 文件,其中包括您原来的 .xcodeproj 和一个 Pods 项目。您需要关闭 .xcodeproj 并打开 .xcworkspace。

这是通过 Xcode 的新项目向导创建项目时的常见问题 - 我经常忘记我不在工作区中,这是让 Cocoapods 到 link 所必需的正确。

第 1 步

The first thing that you will need to do is remove the Podfile, Podfile.lock, the Pods folder, and the generated workspace.

第 2 步

Next, in the .xcodeproj, remove the references to the Pods.xcconfig files and the libPods.a file.

第 3 步

Within the Build Phases project tab, delete the Check Pods Manifest.lock section (open),Copy Pods Resources section (bottom) and Embed Pod Resources(bottom).

第四步

Remove Pods.framework.

您唯一可能想要做的就是包含您之前使用的一些库。您可以通过简单地将 pods 文件夹中的任何文件夹拖到您的项目中来完成此操作(我更喜欢将它们放入我的 Supporting Files 文件夹中)。

它对我有用。

就我而言,我可以在设备和模拟器上构建它,但在存档时出现相同的错误。要解决它,我必须

  • 移除Pods.framework
  • 确保 Pods-<project-name>.framework 已嵌入

您将在 TARGETS-->Linked Frameworks and Libraries 中找到这些设置。

谁发现了这个问题。我正在使用 NativeScript 并得到了同样的错误。

发生这种情况是因为我打开了文件.xcodeproj,但我们必须通过文件.xcworkspace 打开项目。

我通过选择从 CocoaPods 下载的项目并构建它解决了这个问题,您可以单击管理方案,以便它可以出现在 运行 栏中。然后你可以重建你的项目。希望对你有帮助。

这发生在我更新我的 Podfile 并执行 pod 更新后。

出于某种原因,我的项目下出现了一个 "Pods_[ProjectName]".framework 文件 'Targets' > General > Linked Frameworks and Libraries。

删除它然后 clean/rebuilding 解决了这个问题。

你应该删除你的项目中的一些文件,如这张图片。

使用 Xcode 8.3 接受的答案对我不起作用。我尝试过许多其他解决方案,但@Elliott Davies 的回答是为我解决的问题。为了清楚起见,我添加了一个屏幕截图。出于某种原因,Xcode 试图 link 以前的 podfile 设置不再存在。我所要做的就是删除多余的引用,一切正常。

只需从 "Your Project->General->Linked Framework & Libraries" 的列表中删除您的 .framework。

Xcode 9, 10, 11, 11.5

安装https://github.com/CocoaPods/cocoapods-deintegrate

pod deintegrate

然后

pod install

删除和更新 pod 后我仍然遇到同样的问题。

我发现以前的开发人员在“Build Settings -> Other Linker Flags”中使用框架名称(在我的例子中是 -framework 'OGVKit')放置标志提出问题。

删除该标志后,项目构建正常。

我遇到了与

类似的问题
framework not found Pods_OneSignalNotificationServiceExtension

已通过删除以下内容解决此问题。转到 target OneSignalNotificationServiceExtension > Build Phases > Link Binary with Libraries 并删除 Pods_OneSignalNotificationServiceExtension.framework 希望这可以帮助。干杯。

您很可能会尝试让 pods 融入您的项目,对吗? 这样做的唯一方法是创建一个使用 CocoaPods 的单独项目。

关闭您正在使用的所有工作区。

接下来,确保您的 Podfile 已完全准备就绪。

在命令行中,无论您的文件在哪里,键入命令:

pod deintegrate

然后,安装你的 pod agian。

pod install or pod update

现在您可以使用项目的新工作区进行开发。查找名为 .workspace 的文件。使用该文件!

这是使用指南 CocoaPods

如果您打开 .xcworkspace 文件但仍然出现相同的错误,请删除 Pods 目录的所有内容并从命令行写入 pod install 以解决问题。

删除 pod 安装或更新后创建的 frameworks 文件夹

我收到此错误是因为我重命名了我的项目并更改了 pod 文件中的项目名称,但我的项目引用了不存在的旧名称并导致了此错误。我通过

摆脱了这个
pod deintegrate

其次是

pod install

我确实遇到过这个问题,因为我没有正确设置 platform

所以在我的 macOS 应用程序中,我将平台设置为:

platform :ios

而不是

platform :osx

解决我问题的另一件事是进入目标 -> 构建设置 -> 其他链接器标志并删除“-framework”和你的框架 "name"。

当我试图删除一个 pod 时发生了。

这个问题快把我逼疯了,因为它突然发生了,而且还没有对项目做任何更改。我已经尝试了该线程(以及其他相关线程)中所有建议的解决方案,其中 none 解决了问题。

与我的其他项目(编译良好)唯一不同的是,这个项目名称包含重音(法国重音,“é”)。我已经重命名了项目和所有相关文件,它终于成功了!

可能这与更新到 Xcode 10 有关,因为这个项目之前运行良好...

编辑:使用项目名称中带有 - 的项目时似乎也失败了……

在我的例子中,在比较了我知道正确构建的分支之间的差异之后,我注意到我的 Podfile 中的这一行:

platform :ios, '11.0'

我不小心将我的目标版本从 10 提高到 11,而我在 Xcode 中的目标仍设置为 10。恢复到 10 解决了我的问题。

确保您的目标 iOS 版本设置正确。

我通过将 .framework 文件拖到 Linked Framework and Libraries

解决了这个问题

假设由于错误 FIRAnalyticsConnector not found 我遇到了这个问题,我只是将 FIRAnalyticsConnector.framwork 文件拖到 Linked Framework and Libraries,我的问题就解决了

这是我解决问题的方法。当我写这个答案时它现在可以工作了:

首先,我尝试了上面所有最修复的方法,

在目标的构建阶段从 link 库和框架中删除 Pods_xxx.framework 是有帮助的,问题会消失,但接下来的问题是我无法导入Pods.framework 了。

然后,我尝试重新初始化 xcworkspace 配置,以便找出真正的问题。所以我运行

pod deintergate

然后再次安装我的 pod:

pod install

这个工作完美,但问题仍然存在,但我发现真正的问题是 Pods_xxx.framworks 没有被 cocoapods 构建脚本编译成功。我认为这是解决问题的真正方法。

最后,我尝试编辑我的项目方案:

我将 Pods 方案添加到管理中:

再单独建这个Pods.framework,你会发现Pods.framework图标又变真的了:

and i think now you have fix your "framework not found Pods_xxxx.framework" problem but actually i have another problem coming:

所以我转到构建设置,然后用 "${inherited}" 编辑 "Framework Search Path"现在所有的问题都解决了,加油!!!:)

我尝试了这里的每个答案,none 成功了。我最终通过将部署目标从 10.0 提高到 11.0 使其正常工作。我不知道为什么修复它,但我怀疑它与升级到 Xcode 10.2.1.

有关

也许你突然打开了.xcodprj的错误文件,你应该打开.xcworkspace

请检查 .Framework 中的可执行文件,例如

  1. 可执行文件名应该是这样的,没有任何扩展名。

  2. 有些框架是这样显示的

  3. 使用终端转到 .framework 目录使用下面的命令 lipo -create FrameworkName-x86_64 FrameworkName-armv7 FrameworkName-armv7s FrameworkName-i386 FrameworkName-arm64 -output FrameworkName

创建单个可执行文件后删除此文件

对我来说,问题在于更改部署目标。我将其更改为 9.0+,但将其更改为 11.0+ 有效。

这件事发生在我身上,因为我更改了 General 中的 Deployment Target,但忘记更改 Pods > General 中的 Deployment Target

另一个很棒的事情是使用这个规则来禁用 CocoaPods 脚本阶段的输入和输出路径(复制 框架和复制资源):

 install! 'cocoapods',
        :disable_input_output_paths => true

就我而言,有一个对我在

上删除的库的引用

Targets > Build Settings > Runpath Search Paths

从 Podfile 中删除库并更新它显然没有删除它,所以我必须手动完成,现在一切正常。

None 之前的答案指出了我的情况的根本问题。 所以我希望这可能对其他人有用。

在我的例子中,我最终不得不在项目的根目录下编辑我的 podfile。当我第一次创建我的 podfile 时,swift 静态库不受支持。 所以我一直在我的每个目标下的 podfile 中使用 use_frameworks!

之前

...
target 'targetName' do
   use_frameworks!
   pod 'podName', '~> 0.2'
end

之后

...
target 'targetName' do
   pod 'podName', '~> 0.2'
end

我从我的 podfile 中删除了 use_frameworks!,每次我 运行 pod 安装时它都会继续安装框架。删除此行后,确保再次 运行 pod install 并从 Xcode 中的 Frameworks 文件夹中删除任何红色的 .framework 引用。 (虽然我的看起来有所不同,如下所示。)

Removing .framework files that are no longer necessary

的图片

您还可以阅读更多关于 use_framework! here

在我的例子中,我在安装 pods 之前创建了工作区,所以当我安装 pods 时,工作区只包含我的项目,将 Pods 项目添加到您的工作区、清理和重建解决了我的问题

我已经解决了这个问题。

删除这三个文件。

  1. Podfile.lock
  2. Pods 文件夹
  3. .xcworkspace

然后在终端和运行 pod deintegrate命令中打开你的项目,然后运行 pod install命令

[Xcode11.2.1]

对我来说,Podfile(platform :ios, '11.0') 和 Xcode 项目文件 .

中的应用程序目标版本不同

它导致 CI 管道中的存档作业失败。

匹配两个值解决了一个问题!希望这对任何人都有帮助。

就我而言,我的问题如下:ld:找不到框架UserMessagingPlatform.xcframework

对我来说,解决方案如下:

  1. 打开取景器 window 并转到 ios 文件夹
  2. 查找以下文件:

Pods-[您的项目名称].release.xcconfig

Pods-[您的项目名称].debug.xcconfig

  1. 打开这些文件并删除以下文本:-framework "UserMessagingPlatform.xcframework" in both files
  1. pod 初始化
  2. 关闭当前 xcode 项目
  3. 重新打开 xcode 后缀为 xcworkspace 的项目

enter image description here

对我来说,问题是在我的主项目中,构建设置 Build Active Architecture Only 被设置为 NO,而在 Pods 项目中,它被设置为 YES.

设置相同后,成功了!

就我而言, 我遇到这个问题是因为我在项目名称中使用了非英文字符。

当我更改项目名称并再次 运行 install pod 时问题解决了。

我使用步骤 -> 转到目标的构建设置,并使用“${inherited}”编辑“框架搜索路径”,现在问题是 FBLPromises.framework 未找到。

从我的项目中删除一些 pods 后,我遇到了同样的问题。 首先,我在终端中使用了 pod deintegrate,然后是 pod install,但对我不起作用。 所以我进入项目 Build SettingOther Linker Flags 选项的第二步,我发现删除的框架没有被删除,所以我手动删除了它们。

我的解决方案是

  1. delete 实际上是通过 pods 删除的,但仍然出错 Xcode 中的框架 目标 > 构建设置 > 其他链接标志(在链接部分)

  2. 关闭 Xcode 然后 运行 pod 更新

  3. 重新打开Xcode然后在运行Product > Clean Build Folder菜单

之后我的项目运行再次编译!

就我而言,只需删除 Pods 文件夹和 运行 pod install 即可解决问题。

在我的例子中,我使用双引号 ( pod "xposd" ) 在 pod 文件中添加了新的 pod 条目,这导致了问题。 尝试使用单引号添加 pod 条目,就像这样 ( pod 'xpod' ) 在您的 pod 文件中。