Xcode中的“找不到框架”


76

我知道有人问过几次了。我遵循了这些指示:

在Xcode 5中向项目添加框架并添加*相对*路径

xcode4:链接器错误:找不到目录的选项

仍然Xcode给出此错误:

在此处输入图片说明

这是我当前的配置:

在此处输入图片说明

在此处输入图片说明

bolts框架是这样,所以我可以使用Parse SDK。我从此处下载了空白项目:https : //parse.com/apps/quickstart#parse_data/mobile/ios/native/new

工作正常 我试图复制每个配置选项,但仍然无法正常工作。


Answers:


78

尝试Bolts.framework从链接的框架中删除并重新添加。此外,在Framework Search Path保持路径,直到Bolts.framework$(PROJECT_DIR)/Bolts如果是螺栓文件夹内的项目目录路径。


1
对于框架搜索路径,转到您的项目,选择目标,然后转到构建设置。搜索,framework直到您看到粗体的框架搜索路径。
George_E

25

我是iOS开发的新手。显然,对我来说,这个问题是打开.xcodeproj Xcode项目而不是.xcworkspace Xcode工作区的结果。我打开了工作区,错误消失了。


这为我解决了问题,但是当我打开工作区时,我只能看到ViewController.class文件。当我尝试打开其他文件时,它们在侧视图中打开,无法真正正确地读取xib文件。您知道为此工作吗?
山姆

8

从嵌入式二进制文件中删除所有框架,然后重新添加



5

我也遇到了这个错误,我将框架文件移到了根项目文件夹,然后再次添加到框架中,问题解决了。


4

我只是遇到了同样的情况(添加了第3方框架后,很难解决OP的构建错误),而且似乎是一个错误Xcode(我的是8.3.2 (8E2002))。

问题在于框架路径中的文件夹名称包含空格。在这种情况下,Xcode在这样的反斜杠中错误地转义了它们Build Settings -> Framework Search Paths

$(PROJECT_DIR)/Folder\ with\ spaces/Lib

要解决此问题,只需手动编辑条目以删除这些反斜杠,然后将整个字符串括在引号中,如下所示:

"$(PROJECT_DIR)/Folder with spaces/Lib"

4

删除引起问题的框架(通过删除引用)。

然后按照添加FBSDK框架和库的以下步骤再次添加它:

  1. 点击项目
  2. 常规设置
  3. 链接的框架和库
  4. 单击加号按钮,然后添加所有需要的内容

我本来以为这可以单独工作,但是即使这样做,我仍然必须清除“目标成员身份”复选框,运行“产品”>“清理”,然后再次设置“目标成员身份”复选框。
迈克尔

4
  1. 从Xcode项目设置中删除框架链接。
  2. 将框架移到项目文件夹。
  3. 在Xcode项目设置中重新添加框架。
  4. 清理项目并重新编译。

1
这些说明对我来说很重要的一点是,当我将框架移到项目文件夹中而不是将其放置在文件系统中的其他位置Framework Search Paths时,当我将框架重新添加到目标时,Xcode会自动将框架的父文件夹添加到目标的Build Setting中。 Xcode中的目标。我决定Frameworks在项目中添加一个文件夹,以使我的目标具有Framework Search Paths如下条目:"$(PROJECT_DIR)/Frameworks"
阿迪尔·侯赛因

4

如果使用CocoaPods尝试运行:

pod deintegrate
pod update


3

在我发现在“构建设置”下的“框架搜索路径/调试”下有空白的“任何体系结构|任何SDK”行之前,上述所有方法都不适合我。

删除了行,行了!


2

1:-从Xcode项目中删除框架。退出Xcode。

2:-在XCode中打开项目,然后转到菜单下的文件,然后选择将文件添加到“ YourProjectName”。

在此处输入图片说明

3:在保留目录的目录中选择“ YourFramwork.framework”。

4:-单击复制项目(如果需要)复选框。

5:-单击添加。

在此处输入图片说明

确保在目标设置-常规下的嵌入式二进制文件和链接的框架和库中都添加了框架。如下图所示:

在此处输入图片说明

在此处输入图片说明


对我来说,这些说明的重要部分是,当我在将框架添加到目标中之前将框架复制到项目中时,Xcode会在目标的Framework Search PathsBuild Setting中自动为其添加一个条目。我决定将框架复制到Frameworks项目中的文件夹中,以使我的目标具有Framework Search Paths如下条目:"$(PROJECT_DIR)/Frameworks"
阿迪尔·侯赛因

1

发生此错误的原因是因为Pods文件夹位于iCloud中,并且在我的计算机上没有本地副本。在Finder中转到项目的文件夹,然后检查其中的任何文件夹中是否都有iCloud的符号!


1

我意识到我没有使用来运行/构建框架Generic Device,这奇怪地导致了这些问题。我只是把框架放回去,它就起作用了。


0

我的框架的名称很长,例如FrameworkSDK_Light-1.0.6.framework,因此我将其重命名为FrameworkSDK_Light.framework,这解决了我的问题。


0

我收到错误消息“找不到AdBrixRM框架”。我检查了AdBrixRM.framework。我注意到缺少“ AdBrixRM”执行文件。我将此文件复制到framework文件夹,问题不再存在。


0

过去,我曾经在Google Admob SDK中遇到过同样的问题。最近,在尝试添加Validic库时发生了这种情况。这次我也尝试了同样的老好把戏,但很快就奏效了。

1)删除框架(如果已添加)。

2)在Finder中找到框架,并将其直接拖放到项目树下的Project Navigator窗格中

3)构建项目,然后放心!

不确定有什么区别,但是通过官方方式添加框架,请转到项目设置页面(TARGET)下的“链接的框架和库”部分,然后从那里进行链接对我不起作用。希望这可以帮助。


0

我发现file.framework引用了我项目外的文件。所以我将文件拖到项目下的frameworks文件夹中,然后摆脱了早期的file.framework文件,它开始工作了。


0

如果您使用的是CocoaPods。我也发生了类似的事情。尽管这个问题很老,但像我这样的人可能仍在努力。因此对您有帮助:在pod install警告您有关项目文件的信息之后。直到现在我都没有注意到。它说:

[!]ProjectFile.xcworkspace从现在开始,请关闭任何当前的Xcode会话并 用于该项目。

因此,基本上,在安装Pods之后,不要继续使用.xcodeproj。如果这样做,链接器将找不到文件。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.