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

ld:框架没有找到Pods Clang:错误:连接器命令失败,退出码为1(使用-v查看调用)

我试图删除我的pod目录,然后运行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

谢谢你!


在Project Navigator的Pods文件夹中,我有一个红色的pod。framework。它也出现在链接框架和库中。我删除了这两个引用,错误就消失了。

博士TL;

删除pod .framework:

文件夹名为Pods 链接框架和库


我通过删除位于项目导航器框架文件夹中的红色.framework文件来清除此错误。我认为这也会自动删除常规设置中链接框架和库部分中相应的红色条目。

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


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

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

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


步骤1

你需要做的第一件事是删除Podfile, Podfile。锁、Pods文件夹和生成的工作区。

步骤2

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

步骤3

在Build Phases项目选项卡中,删除Check Pods清单。锁定部分(打开),复制Pods资源部分(底部)和嵌入Pod资源(底部)。

第四

删除Pods.framework。

您唯一要做的就是包含您以前使用过的一些库。你可以通过简单地将pods文件夹中的任何文件夹拖到你的项目中(我更喜欢将它们放在我的Supporting Files文件夹中)来做到这一点。

这对我很管用。


在我的情况下,我可以在设备和模拟器上构建它,但存档时有相同的错误。为了解决这个问题,我必须

删除Pods.framework 确保pod -<project-name>.framework被嵌入

你会在TARGETS——>链接框架和库中找到设置。


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

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


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


这发生在我更新我的Podfile和做pod更新后。

出于某种原因,我有一个“Pods_[ProjectName]”.framework文件出现在我的项目下的“目标”>一般>链接框架和库。

删除这个,然后清理/重建修复了这个问题。


你应该把你的项目删除一些像这张图片那样的文件。


使用Xcode 8.3,接受的答案并不适合我。我尝试过许多其他的解决方案,但@Elliott Davies的答案为我解决了这个问题。为了清晰起见,我添加了一个截图。出于某种原因,Xcode试图链接以前不存在的podfile设置。我所要做的就是删除额外的引用,一切都正常了。


只需从“您的项目->通用->链接框架和库”列表中删除您的. Framework即可。


Xcode 9, 10, 11, 11.5

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

pod deintegrate

然后

pod install

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

我发现以前的开发人员把标志放在“构建设置->其他链接器标志”与框架名称(在我的情况下-框架“OGVKit”),这使得问题。

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


我有一个类似的问题

framework not found Pods_OneSignalNotificationServiceExtension

它通过删除以下内容得到解决。去目标OneSignalNotificationServiceExtension > Build Phases > Link Binary with Libraries并删除Pods_OneSignalNotificationServiceExtension.framework 希望这能有所帮助。欢呼。


你很可能是想让这些豆荚进入你的项目,对吧? 做到这一点的唯一方法是创建一个使用CocoaPods的单独项目。

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

接下来,确保你的Podfile已经完全准备好了。

在命令行中,不管你的文件在哪里,键入命令:

pod deintegrate

然后,再次安装吊舱。

pod install or pod update

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

下面是使用CocoaPods的指南


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


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


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

pod deintegrate

紧随其后的是

pod install

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

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

platform :ios

而不是

platform :osx

解决我的问题的另一件事是在目标->构建设置->其他链接器标志下,删除“-框架”和你的框架“名称”。

我试图取出一个豆荚时发生的。


这个问题快把我逼疯了,因为它突然发生了,却没有对项目做任何改变。我已经尝试了这篇文章(以及其他相关文章)中所有建议的解决方案,但没有一个能解决问题。

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

也许这与更新到Xcode 10有关,因为这个项目在…

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


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

platform :ios, '11.0'

我无意中将目标版本从10提升到11,而Xcode中的目标版本仍然设置为10。恢复到10为我解决了我的问题。

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


我通过将.framework文件拖到链接框架和库来解决这个问题

假设我有这个问题,由于错误FIRAnalyticsConnector没有找到,我只是拖FIRAnalyticsConnector. Framework文件链接框架和库和我的问题解决了


这就是我解决问题的方法。当我写下这个答案时,它就可以工作了

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

在目标的构建阶段从链接库和框架中删除Pods_xxx.framework是有帮助的,这个问题将会消失,但接下来的问题是我不能再导入pod .framework了。

然后,我尝试重新安装xcworkspace配置,这样我就可以找出真正的问题。所以我跑了

pod deintergate

然后重新安装我的吊舱:

pod install

这个工作很好,但问题仍然在那里,但我发现真正的问题是pods_xxx . frameworks没有被cocoapods构建脚本成功编译。我认为这才是解决问题的真正方法。

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

并在管理中加入Pods方案:

然后单独构建这个pod .framework,你会发现pod .framework图标又变成了true:

我认为现在你已经修复了“框架找不到Pods_xxxx.framework”的问题 但实际上我还有另一个问题:

所以我转到构建设置,用“${inherited}”编辑“框架搜索路径”, 现在所有问题都解决了,欢呼吧!!!!:)


我试了这里所有的答案,没有一个能答对。我最终通过将部署目标从10.0提升到11.0来让它工作。我不知道为什么会修复它,但我怀疑这与升级到Xcode 10.2.1有关。


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


请检查你的可执行文件。框架

可执行文件的名称应该是这样的,没有任何扩展名。 有些框架是这样显示的 使用Terminal goto .framework目录使用以下命令 FrameworkName-armv7 FrameworkName-armv7s FrameworkName-i386

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


对我来说,问题在于改变部署目标。我把它改成了9.0+,但改成了11.0+。


这种情况发生在我身上,因为我在一般情况下更改了部署目标,但忘记在Pods > General中更改部署目标。


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

 install! 'cocoapods',
        :disable_input_output_paths => true

在我的例子中,有一个引用到我删除的库

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

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


之前的回答都没有指出问题的根源。 所以我希望这对其他人有用。

在我的情况下,我最终不得不在我的项目的根编辑我的podfile。当我第一次创建我的podfile时,swift静态库不受支持。 所以我一直在使用use_frameworks!在我的播客文件下,我的每个目标如下:

之前

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

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

我删除了use_frameworks!从我的podfile一直安装框架,每次我运行pod install。在删除这一行之后,确保再次运行pod install并从Xcode中的Frameworks文件夹中删除任何红色的.framework引用。(尽管我的观点不同,如下所示。)

删除不再需要的.framework文件的图像

你也可以阅读更多关于use_framework的内容!在这里。


在我的情况下,我在安装pods之前创建了工作空间,所以当我安装pods时,工作空间只包括我的项目,将pods项目添加到您的工作空间,清理和重建解决了我的问题


我已经解决了这个问题。

删除这三个文件。

Podfile.lock 豆荚文件夹 .xcworkspace

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


(Xcode 11.2.1)

对我来说,这是Podfile(平台:ios, '11.0')和Xcode项目文件中的不同应用程序目标版本。

导致CI管道归档作业失败。

匹配两个值修复了一个问题!希望这对大家有所帮助。


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

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

打开一个查找器窗口,转到ios文件夹 寻找以下文件:

pod -[你的项目名称].release.xcconfig

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

打开这些文件并删除以下文本:Xcframework”


圆荚体初始化 关闭当前xcode项目 以xcworkspace后缀重新打开xcode项目

在这里输入图像描述


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

在将两者设置为相同之后,它工作了!


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

当我改变项目名称并再次运行安装pod时,问题解决了。


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


从我的项目中移除一些豆荚后,我也遇到了同样的问题。 首先,我使用pod分解后,pod安装在终端,但不适合我。 所以我转到我的项目构建设置中的第二步,在其他链接器标志选项上,我发现删除的框架没有被删除,所以我手动删除了它们。


我的解决方案是

删除实际上通过pods删除,仍然产生错误 其他链接标志(在部分链接中) 关闭Xcode,然后运行pod update 重新打开Xcode,然后在菜单中运行Product > Clean Build Folder

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


在我的情况下,只要删除Pods文件夹和运行pod安装就解决了这个问题。


在我的情况下,我在pod文件中添加了新的pod条目,使用双引号(pod“xposd”),这导致了问题。尝试在pod文件中使用单引号(pod' xpod')添加pod条目。


框架没有发现Pods_OneSignalNotificationServiceExtension

在我的情况下(英特尔mac),设置部署目标是相同的(11.0)为我工作:

豆荚文件

跑步者

一个信号扩展


...正确答案是……

当你使用pods (Podfile和pod install)时,它会为你生成和调整一些“构建设置”。然而,有时你要加上别的东西,例如:

您可以通过添加更多的标志来修改“其他链接标志” 或者手动添加额外的框架等等。

因此,当你更新Podfile时,生成的项目必须再次更改生成的设置,它会跳过它们。因为你手动调整了它们。

例如,如果你删除了use_frameworks!如果你修改了“其他链接标志”,它就不会被更新,而是会保留像-framework CocoaAsyncSocket这样的标志。当你构建时,显然你不再有这个框架了- ..而你有“未找到”的问题。

解决方案是,检查您调整了哪些设置并将其重置为默认值。这将允许pod install正确地更新它们。但是,运行pod deintegrate然后pod install并不是一个正确的解决方案,因为你可能会错过手动添加的设置。因此,验证并保存你修改的设置,重置它们(或使用pod deintegrate),然后安装pod,如果它们仍然有意义,再应用手动设置。