我试图在我的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
谢谢你!
步骤1
你需要做的第一件事是删除Podfile, Podfile。锁、Pods文件夹和生成的工作区。
步骤2
接下来,在.xcodeproj中,删除对Pods的引用。xcconfig文件和libPods。一个文件。
步骤3
在Build Phases项目选项卡中,删除Check Pods清单。锁定部分(打开),复制Pods资源部分(底部)和嵌入Pod资源(底部)。
第四
删除Pods.framework。
您唯一要做的就是包含您以前使用过的一些库。你可以通过简单地将pods文件夹中的任何文件夹拖到你的项目中(我更喜欢将它们放在我的Supporting Files文件夹中)来做到这一点。
这对我很管用。
这就是我解决问题的方法。当我写下这个答案时,它就可以工作了
首先,我尝试了上面所有最固定的方法,
在目标的构建阶段从链接库和框架中删除Pods_xxx.framework是有帮助的,这个问题将会消失,但接下来的问题是我不能再导入pod .framework了。
然后,我尝试重新安装xcworkspace配置,这样我就可以找出真正的问题。所以我跑了
pod deintergate
然后重新安装我的吊舱:
pod install
这个工作很好,但问题仍然在那里,但我发现真正的问题是pods_xxx . frameworks没有被cocoapods构建脚本成功编译。我认为这才是解决问题的真正方法。
最后,我尝试编辑我的项目方案:
并在管理中加入Pods方案:
然后单独构建这个pod .framework,你会发现pod .framework图标又变成了true:
我认为现在你已经修复了“框架找不到Pods_xxxx.framework”的问题
但实际上我还有另一个问题:
所以我转到构建设置,用“${inherited}”编辑“框架搜索路径”,
现在所有问题都解决了,欢呼吧!!!!:)
之前的回答都没有指出问题的根源。
所以我希望这对其他人有用。
在我的情况下,我最终不得不在我的项目的根编辑我的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 (Podfile和pod install)时,它会为你生成和调整一些“构建设置”。然而,有时你要加上别的东西,例如:
您可以通过添加更多的标志来修改“其他链接标志”
或者手动添加额外的框架等等。
因此,当你更新Podfile时,生成的项目必须再次更改生成的设置,它会跳过它们。因为你手动调整了它们。
例如,如果你删除了use_frameworks!如果你修改了“其他链接标志”,它就不会被更新,而是会保留像-framework CocoaAsyncSocket这样的标志。当你构建时,显然你不再有这个框架了- ..而你有“未找到”的问题。
解决方案是,检查您调整了哪些设置并将其重置为默认值。这将允许pod install正确地更新它们。但是,运行pod deintegrate然后pod install并不是一个正确的解决方案,因为你可能会错过手动添加的设置。因此,验证并保存你修改的设置,重置它们(或使用pod deintegrate),然后安装pod,如果它们仍然有意义,再应用手动设置。