Xcode - 更改框架的搜索路径

Posted

技术标签:

【中文标题】Xcode - 更改框架的搜索路径【英文标题】:Xcode - changing search path for frameworks 【发布时间】:2018-12-17 23:00:34 【问题描述】:

我遇到了无法识别框架的问题:

由于某种原因,框架的路径设置为 Derived Data 文件夹:

有没有办法改变它以使框架搜索正确的文件夹?

另外,这是哪种语言,我将如何将目录更改为正确的模块(在 repo 中)?

感谢您提供的任何见解,这让像我这样的业余爱好者感到困惑。

【问题讨论】:

你是如何添加这些框架的?如果您提供了到达那里的步骤,那么有人可能会指出您哪里出错了。 :) @George_E 感谢您与我们联系。我实际上采用了这个项目。这些是相对较旧的框架。这些在 3.2 中有效,但现在我正在安全地转换到 Swift 4.2,这些问题正在弹出。 那么框架已经在项目中了,然后你只是在转换代码?或者您是否也在更新框架(可能通过pod install)? 我都在做。 TelerikUI 等一些框架必须下载然后安装。 TelerikUI 目前仅支持 Xamarin,因此我必须自己将旧库升级到 swift 4.2,这似乎可以工作。我只是将它们添加到存储库中。但是,我仍然不知道为什么会有那些红色的框架。 我也不太确定???? 【参考方案1】:

有没有办法改变它以使框架搜索正确的文件夹?

是的,您似乎已经在项目中找到了 Framework Search Paths 设置。更改该设置以包含您的框架文件夹,Xcode 应该开始看到您的框架。

另外,这是什么语言,我将如何将目录更改为正确的模块

它根本不是一种语言,它只是一个列表。当您双击设置的右侧列时,正如您在上图中所做的那样,将打开一个允许您编辑列表的视图。它没有显示在您的图像中,但在该视图的底部有 +- 按钮 - 单击 + 您将在列表中添加另一个项目。您可以在那里添加您的文件夹。

您在列表中看到的$DEVELOPER_FRAMEWORKS_DIR 项目只是 DEVELOPER_FRAMEWORKS_DIR 项目变量的值。构建设置中的每个设置都有一个相应的变量,该设置会更改 - 每个设置的变量都列在该设置的“快速帮助”面板中。 $(inherited) 是 Xcode 构建系统中的一种宏——它指定从其他设置级别为该构建设置继承的值。有关inherited 的更多信息,请参阅What is $(inherited) in Xcode's search path settings?。

您不应该在框架搜索路径设置中添加绝对路径,例如以/Users/yourname/Library/... 开头的一个,因为这样该项目将仅在您的计算机上构建。相反,您应该指定相对于项目中某个点的路径,Xcode 中的各种环境变量可以提供帮助。例如,如果您想在项目目录的顶层指定一个名为 Frameworks 的文件夹,您可以将一个项目添加到框架搜索路径中,名称为 $PROJECT_DIR/Frameworks。您可以在此处找到项目变量列表:How do I print a list of "Build Settings" in Xcode project?

【讨论】:

这对@Caleb 很有帮助。如何在项目中找到相对搜索路径?比如上面的情况?

以上是关于Xcode - 更改框架的搜索路径的主要内容,如果未能解决你的问题,请参考以下文章

XCode3 - 库搜索路径和项目框架之间的关系

XCode FacebookSDK 框架搜索路径

IOS Xcode 5.1 搜索路径在单独的行中

iOS 开发:有问题的框架搜索路径

系统中缺少框架,但 Mac/iOS 上的 XCode 中没有

SVN 结帐时缺少框架和库,XCode 5