Xcode构建在错误文件夹中的静态库

mat*_*hat 7 xcode cocoapods

我为我的项目设置了cocoapods,我已经进行了很长一段时间的开发而没有任何问题.最近我添加了一个名为"Beta"的新配置,复制了"Release"配置.与此同时,我添加了一个使用此配置构建目标的Scheme.

这个新方案可以毫无问题地构建所有内容,但是链接会因(看似已知的)消息而失败:

ld: library not found for -lPods

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

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

编辑

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

是什么导致这种情况以及如何解决这个问题?

排除问题

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

在此输入图像描述

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

在此输入图像描述

mat*_*hat 1

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

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