【问题标题】:Xcode Static libraries building in wrong folderXcode静态库构建在错误的文件夹中
【发布时间】:2013-08-05 08:03:53
【问题描述】:

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

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

ld: library not found for -lPods

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

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

编辑

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

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

排除的问题

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

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

【问题讨论】:

    标签: xcode cocoapods


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-01-08
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多