8

我已经为我的项目设置了 cocoapods,并且我已经进行了相当长一段时间的开发,没有任何问题。最近我为其添加了一个名为“Beta”的新配置,复制了“发布”配置。同时,我添加了一个可以使用此配置构建目标的方案。

这个新方案可以毫无问题地构建所有内容,但链接会失败并显示(似乎很知名)消息:

ld: library not found for -lPods

我知道导致出现此错误消息的问题已在网络上广泛讨论,原因和条件各不相同:

这些修复似乎都不适用于这里。通过查看工作区文件夹,我可以看到 Cocoapods 构建产品被放入Build/Products/Release-iphonesimulator而不是 in Build/Products/Beta-iphonesimulator,即使应用程序本身是正确构建到后者中的。将所有*.a文件移入Build/Products/Beta-iphonesimulator模拟器中可以正常运行,但下一个构建仍然放在错误的位置。

编辑

经过一些进一步的调查,环境变量$BUILT_PRODUCTS_DIR在应用程序本身的构建阶段设置正确,但在构建 cocoapods 产品时却没有。

是什么原因造成的,我该如何解决?

排除的问题

  • pod install已运行多次
  • 我在工作区工作,而不是在项目中
  • 新配置中的cocoapods配置文件设置正确

在此处输入图像描述

  • 首选项中的构建位置似乎很好

在此处输入图像描述

4

1 回答 1

1

记录在案,问题已经解决。所以,正如我所说,我使用 cocoapods,但我当前的设置是单个 podfile,并且工作区用于共享一些公共库的 3 个项目。正如本期所解释的,cocoapods 只会考虑 podfile 中指定的所有项目中的一个项目,它会变成它正在使用的一个项目(三个项目中的一个),没有beta配置,所以它没有不觉得有必要为此做准备。因此,当需要使用配置构建项目时beta,将为配置构建 cocoapods release,并将其放入特定于 的文件夹中release,因此beta项目将无法找到它。

修复是为工作区中存在的所有项目创建beta配置,迫使 cocoapods 进行相应的准备。然后,Xcode 将能够适当地连接所有内容。

于 2013-09-03T17:38:20.580 回答