ld:框架未找到Pods

时间:2015-04-25 13:35:55

标签: ios xcode cocoapods

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

  

ld:找不到框架

     

clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

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

我的podfile如下所示:

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

谢谢,

41 个答案:

答案 0 :(得分:469)

在文件夹Unicode (UTF-8 with signature) - Codepage 65001的{​​{1}}中,我的Project Navigator位于红色。它也出现在Pods中。我删除了两个引用,错误消失了。

<强> TL; DR

删除Pods.framework

  • 名为Linked Frameworks and Libraries
  • 的文件夹
  • Pods.framework

答案 1 :(得分:153)

这通常是由.xcodeproj文件打开而不是.xcworkspace引起的。

当您第一次运行“pod install”时,它将创建一个.xcworkspace文件,其中包含您原始的.xcodeproj和一个Pods项目。您需要关闭.xcodeproj并改为打开.xcworkspace。

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

答案 2 :(得分:83)

Xcode 9或10

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

pod deintegrate

然后

pod install

答案 3 :(得分:46)

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

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

答案 4 :(得分:23)

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

因为我打开了文件.xcodeproj,但我们必须通过文件.xcworkspace打开项目。

答案 5 :(得分:16)

更新我的Podfile并进行pod更新后发生了这种情况。

出于某种原因,我有一个&#34; Pods_ [ProjectName]&#34; .framework文件出现在我的项目目标&#39;目标&#39; &GT;一般&gt;链接的框架和库。

删除它然后清理/重建修复了问题。

答案 6 :(得分:14)

我收到此错误是因为我重命名了我的项目并更改了pod文件中的项目名称,但我的项目是指旧的名称,而不是那里导致此错误。

我摆脱了这个
pod deintegrate

接着是

pod install

答案 7 :(得分:14)

你应该把你的项目删除一些文件作为这张图片。

your should delete the pods.framework and pods mark red files

答案 8 :(得分:13)

我遇到了与

类似的问题
framework not found Pods_OneSignalNotificationServiceExtension

通过删除以下内容解决了问题。转到目标 OneSignalNotificationServiceExtension&gt;构建阶段&gt;将二进制文件链接到库并删除 Pods_OneSignalNotificationServiceExtension.framework It should be empty here. 希望这可以帮助。欢呼声。

答案 9 :(得分:9)

只需从&#34;您的项目 - &gt;一般 - &gt;链接框架&amp;列表中删除您的.framework库&#34 ;.

答案 10 :(得分:5)

在我的情况下,我可以在设备和模拟器上构建它,但在归档时会出现相同的错误。要解决它,我必须

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

您可以在TARGETS中找到设置 - &gt;链接的框架和库。

答案 11 :(得分:5)

[Xcode 11.2.1]

对我来说,Podfileplatform :ios, '11.0')和Xcode项目文件Xcode Deployment info中的应用程序目标版本是不同的。

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

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

答案 12 :(得分:4)

您是否更有可能尝试让pod正常工作? 唯一的方法是创建一个使用CocoaPods的独立项目。

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

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

在命令行中,无论文件位于何处,请键入命令:

pod deintegrate

然后,安装你的pod agian。

pod install or pod update

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

以下是使用CocoaPods

的指南

答案 13 :(得分:4)

Change the deployment target 这是我发生的原因,因为我在General中更改了目标部署,但忘记了在Pods > General中更改了目标部署。

答案 14 :(得分:3)

在我的情况下,我的问题如下: ld:找不到框架UserMessagingPlatform.xcframework

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

  1. 打开一个查找器窗口,然后转到 ios 文件夹
  2. 查找以下文件:

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

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

enter image description here

  1. 打开这些文件并删除以下文本:两个文件中的 -framework“ UserMessagingPlatform.xcframework”

答案 15 :(得分:3)

使用Xcode 8.3,接受的答案对我不起作用。我曾经尝试了很多其他的解决方案,但是@Elliott Davies的回答是为我解决的问题。为了清晰起见,我添加了截图。出于某种原因,Xcode试图链接以前不再存在的podfile设置。我所要做的就是删除额外的引用,一切正常。Screenshot of Xcode Linked Frameworks and Libraries

答案 16 :(得分:3)

第1步

  

您需要做的第一件事是删除Podfile,Podfile.lock,Pods文件夹和生成的工作区。

第2步

  

接下来,在.xcodeproj中,删除对Pods.xcconfig文件和libPods.a文件的引用。

第3步

  

在Build Phases项目选项卡中,删除Check Pods Manifest.lock部分(打开),Copy Pods Resources部分(底部)和Embed Pod Resources(底部)。

步骤4

  

删除Pods.framework。

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

它对我有用。

答案 17 :(得分:2)

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

与我的其他项目(编译良好)唯一不同的是,该项目名称包含重音(法语重音“é”)。我已将项目和所有相关文件重命名,终于可以了!

也许这与更新到Xcode 10有关,因为该项目在……之前运行良好。

编辑:使用项目名称为-的项目时,它似乎也失败了……

答案 18 :(得分:1)

我通过选择从CocoaPods下载并构建它的项目来解决此问题,您可以单击管理方案,以便它可以显示在运行栏中。然后,您可以重建您的项目。希望它有所帮助。

答案 19 :(得分:1)

这是我解决问题的方法。现在我写这个答案的时候就可以了:

首先,我尝试上述所有最固定的方法

在目标构建阶段从链接库和框架中删除Pods_xxx.framework很有帮助,该问题将消失,但是接下来的问题是我无法再导入Pods.framework。 < / p>

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

pod deintergate

,然后再次安装我的pod:

pod install

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

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

Pods scheme is not in edited

然后我将Pods方案添加到manage:

enter image description here

分别构建此Pods.framework,您会发现Pods.framework图标再次真正变为现实:

enter image description here

  

,我想现在您已经解决了“找不到框架Pods_xxxx.framework”问题   但实际上我还有另一个问题:

enter image description here

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

enter image description here

答案 20 :(得分:1)

我已解决此问题。

删除这三个文件。

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

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

答案 21 :(得分:1)

以前的答案都没有指出我所处的根本问题。 因此,我希望这对其他人可能有用。

就我而言,我最终不得不在项目的根目录下编辑 podfile 。首次创建Podfile时,不支持快速静态库。 因此,我一直在自己的每个目标下的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安装时,Podfile都会继续安装框架。删除此行后,请确保再次运行pod install并从Xcode中的Frameworks文件夹中删除任何红色的.framework引用。 (尽管我的出现与以下内容有所不同。)

Removing .framework files that are no longer necessary的图片

您还可以了解有关use_framework! here的更多信息。

答案 22 :(得分:1)

在我的情况下,有对我在

上删除的库的引用
  

目标>构建设置>运行路径搜索路径

从Podfile中删除库并更新它显然并没有将其删除,因此我不得不手动进行操作,现在一切正常。

答案 23 :(得分:0)

如果您打开.xcworkspace文件但仍然遇到同样的错误:

delete all the contents of Pods directory and from command line write "pod install" to resolve the issue.

答案 24 :(得分:0)

我使用了 step -> 转到目标的构建设置,并使用“${inherited}”编辑“Framework Search Path”,现在出现 FBLPromises.framework not found 的问题。

答案 25 :(得分:0)

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

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

答案 26 :(得分:0)

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

将两者设置为相同后,它起作用了!

答案 27 :(得分:0)

删除并更新pod后,我仍有同样的问题。

我发现以前的开发人员在“构建设置 - &gt;中添加了标记。其他链接标志&#39;使用框架名称(在我的案例中为-framework&#39; OGVKit&#39;)提出了这个问题。

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

答案 28 :(得分:0)

就我而言,我是在安装Pod之前创建工作区的,所以当我安装Pod时,工作区仅包含我的项目,将Pods项目添加到您的工作区中,清理并重建解决了我的情况

答案 29 :(得分:0)

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

 install! 'cocoapods',
        :disable_input_output_paths => true

答案 30 :(得分:0)

我确实遇到了此问题,因为我没有正确设置platform

因此在我的macOS应用中,我将平台设置为:

platform :ios

代替

platform :osx

答案 31 :(得分:0)

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

答案 32 :(得分:0)

请在.Framework之内检查您的可执行文件,例如enter image description here

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

  2. 一些类似enter image description here

  3. 的框架
  4. 使用Terminal goto .framework目录在以下命令中使用 lipo -create FrameworkName-x86_64 FrameworkName-armv7 FrameworkName-armv7s FrameworkName-i386 FrameworkName-arm64 -output FrameworkName

创建单个可执行文件后,删除此文件enter image description here

答案 33 :(得分:0)

我在这里尝试了所有答案,但没有一个起作用。我最终通过将部署目标从10.0升级到11.0使其工作。我不知道为什么要修复它,但是我怀疑它与升级到Xcode 10.2.1有关。

答案 34 :(得分:0)

我通过将.framework文件拖到链接的框架和库

解决了此问题

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

答案 35 :(得分:0)

必须运行

pod deintegrate

之后,我必须删除.xcworkspace文件并运行pod install,然后一切正常

答案 36 :(得分:0)

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

platform :ios, '11.0'

当我将Xcode中的目标设置为10时,我无意中将目标版本从10升级到了11。

确保正确设置了目标iOS版本。

答案 37 :(得分:0)

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

答案 38 :(得分:0)

解决我问题的其他方法是进入“目标”->“构建设置”->“其他链接器标志”,然后删除“ -framework”和您的框架“ name”。

发生在我尝试卸下吊舱时。

答案 39 :(得分:-1)

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

答案 40 :(得分:-3)

  1. pod 初始化
  2. 关闭当前的 xcode 项目
  3. 使用 xcworkspace 后缀重新打开 xcode 项目

enter image description here