我试图在我的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 链接框架和库

其他回答

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

(Xcode 11.2.1)

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

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

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

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

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

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

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

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

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

...正确答案是……

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

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

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

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

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

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

platform :ios, '11.0'

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

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