我正在尝试为我的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
谢谢,
答案 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)
答案 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)
答案 8 :(得分:13)
我遇到了与
类似的问题framework not found Pods_OneSignalNotificationServiceExtension
通过删除以下内容解决了问题。转到目标 OneSignalNotificationServiceExtension&gt;构建阶段&gt;将二进制文件链接到库并删除 Pods_OneSignalNotificationServiceExtension.framework 希望这可以帮助。欢呼声。
答案 9 :(得分:9)
只需从&#34;您的项目 - &gt;一般 - &gt;链接框架&amp;列表中删除您的.framework库&#34 ;.
答案 10 :(得分:5)
在我的情况下,我可以在设备和模拟器上构建它,但在归档时会出现相同的错误。要解决它,我必须
Pods.framework
Pods-<project-name>.framework
已嵌入您可以在TARGETS中找到设置 - &gt;链接的框架和库。
答案 11 :(得分:5)
[Xcode 11.2.1]
对我来说,Podfile
(platform :ios, '11.0'
)和Xcode项目文件中的应用程序目标版本是不同的。
这会导致CI管道中的存档作业失败。
匹配两个值解决了一个问题!希望对任何人有帮助。
答案 12 :(得分:4)
您是否更有可能尝试让pod正常工作? 唯一的方法是创建一个使用CocoaPods的独立项目。
关闭您正在使用的所有工作空间。
接下来,确保您的Podfile完全准备就绪。
在命令行中,无论文件位于何处,请键入命令:
pod deintegrate
然后,安装你的pod agian。
pod install or pod update
现在,您可以使用项目的新工作区进行开发。查找名为.workspace的文件。使用该文件!
以下是使用CocoaPods
的指南答案 13 :(得分:4)
答案 14 :(得分:3)
在我的情况下,我的问题如下: ld:找不到框架UserMessagingPlatform.xcframework
对我来说,解决方法如下:
Pods- [您的项目名称] .release.xcconfig
Pods- [您的项目名称] .debug.xcconfig
答案 15 :(得分:3)
使用Xcode 8.3,接受的答案对我不起作用。我曾经尝试了很多其他的解决方案,但是@Elliott Davies的回答是为我解决的问题。为了清晰起见,我添加了截图。出于某种原因,Xcode试图链接以前不再存在的podfile设置。我所要做的就是删除额外的引用,一切正常。
答案 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方案添加到manage:
分别构建此Pods.framework,您会发现Pods.framework图标再次真正变为现实:
,我想现在您已经解决了“找不到框架Pods_xxxx.framework”问题 但实际上我还有另一个问题:
所以我转到构建设置,并用"Framework Search Path"
编辑"${inherited}"
,
现在所有问题都解决了,加油!!!!)
答案 20 :(得分:1)
我已解决此问题。
删除这三个文件。
然后在终端中打开项目并运行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)
可执行文件名应该像这样,没有任何扩展名。
使用Terminal goto .framework目录在以下命令中使用 lipo -create FrameworkName-x86_64 FrameworkName-armv7 FrameworkName-armv7s FrameworkName-i386 FrameworkName-arm64 -output FrameworkName
答案 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)