在Xcode中,Pods.debug.xcconfig的路径不正确?

60
我在我的Xcode项目中使用了CocoaPods的Venmo/Synx,结果完全搞砸了一切。
我已经解决了Manifest.lock和Podfile.lock错误,但现在出现了这个错误:
“Pods.debug.xcconfig”文件无法打开,因为没有这样的文件。 (/Users/user/GitHub/xxxxxx/Pods/Pods/Target Support Files/Pods/Pods.debug.xcconfig)
如您所见,路径不正确,因为没有Pods/Pods目录(多了一个pod)。
我该怎么办?我只添加了PODS_ROOT到用户定义变量,因为那可以修复我的Podfile和Manifest.lock文件。
非常感谢您的帮助!

编辑:

添加PODS_ROOT后,运行pod install时会出现以下情况。

[!] The `Project [Debug]` target overrides the `PODS_ROOT` build setting defined in `Pods/Target Support Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

5
再次运行pod install 可能可以解决此问题。 - Keith Smiley
@KeithSmiley 我已经尝试过很多次,包括删除所有 CocoaPods 的痕迹,然后重新添加。我也尝试了 pod update,但都没有成功解决这个问题。就是无法解决这个问题。 - mais-oui
应该将Podssynx中排除,方法如下:https://github.com/venmo/synx/blob/master/lib/synx/project.rb#L10 - Keith Smiley
@KeithSmiley 是的,我也看到了,但是我正在使用SVProgressHUD,当我运行 synx 时,它会删除所有图像,所以我只是再次运行了pod install,这给我带来了所有错误。我通过添加PODS_ROOT来消除Podfile.lock和Manifest.lock错误来修复它。现在我遇到了这个错误 :/ - mais-oui
这些警告不是构建警告,而是关于你的 SVN 代码库的警告。 - sabiland
显示剩余2条评论
18个回答

65

我在Xcode 6.1.1中遇到了同样的问题。我按照以下步骤解决:

  1. 为与Pods相关的目标设置配置文件设置为"None"。
  2. 关闭.xcworkspace文件。
  3. 再次运行pod install。
  4. 现在打开并构建你的.xcworkspace文件。

* 配置文件设置可以通过选择项目(而不是目标),然后选择信息选项卡来找到。


43
你的问题是:“1. 将与 Pods 相关的目标的项目设置设置为“无”。” 意思是将项目设置中与 Pods 相关的目标的选项设置为“None”。 - Cristian Pena
2
对于步骤1,可以通过选择项目(而不是目标)然后选择“信息”选项卡来找到此设置。 - trishcode
8
不再起作用,设置被 pod install 覆盖。 - Fabian Köbel
1
选择项目 -> 信息选项卡 -> 配置 -> 调试 -> 将文件设置更改为“无”。 - Luke Femur
1
有第二个配置文件可供选择,选择后问题得到解决。 - richy

36

如果你遇到了错误的pod路径,请尝试以下方法:

  • 使用pod deintegrate
  • 删除所有剩余的pod文件 - Podfile.lockPods<Project>.xcworkspace
  • 打开<Project>.xcodeproj
  • 在左侧移除Pods项目
  • 尝试执行pod install

在执行此操作之前,更新Cocoapods并执行此操作解决了我的问题。谢谢!在终端项目文件夹中 - sudo gem update cocoapods - Ben
这对我有用,除了执行所有这些步骤后,我还必须执行“清理构建文件夹”和删除“派生数据”。 - enigma

21

我也曾经遇到过在Xcode 11上的同样问题,但我只是更新了CocoaPods,然后问题就解决了。

  1. 使用 sudo gem install cocoapods 更新到最新版本的CocoaPods
  2. 再次运行 pod install

2
这是解决方案,如果您尝试将您的pods迁移到Swift 5。 - Alex22
2
2019年的现状。 - vr_driver
这个解决方案在与其他解决方案混合使用时不起作用。但是,当它再次被单独使用,并且是全新的解决方案时,它就可以正常工作了。 - zeeawan

12

我第一次构建项目时遇到了相同的错误,这是我如何解决的:

  • pod deintegrate
  • sudo gem install cocoapods-clean
  • pod clean

打开项目并删除应该是红色的“Pods”文件夹。

  • pod setup
  • pod install

重新打开并构建项目,我认为它应该能正常运行了!


8

我在将cocoapods从1.6.x降级/升级到1.5.x时遇到了此问题。 以下步骤解决了这个错误:

1、进入项目信息选项卡

2、在“部署目标”下方,有一个“配置”字段。更改您的配置。在我的情况下,有两个选项。

/Users/user/GitHub/xxxxxx/Pods/Pods/Target Support Files/Pods/Pods.debug.xcconfig

/Users/user/GitHub/xxxxxx/Pods/Target Support Files/Pods/Pods.debug.xcconfig

第三步,重新清理并构建项目。


3

最近 CocoaPods 发布了一个更新,导致了这个问题。请参考 CocoaPods 的版本发布说明:

更改 shell 脚本相对路径使用 ${PODS_ROOT},而不是 ${SRCROOT}/Pods。 Whirlwind #7878

该更改在 2018 年 8 月 16 日的版本 1.6.0.beta.1 中完成。 发布说明在此处:CocoaPods 版本发布说明


构建服务器使用的是1.5.3版本,而开发机器使用的是1.6.1版本。 - possen

3

1- 删除项目根目录下的 Pods 文件夹、Podfile.lockxcworkspace 文件。

2- 打开 .xcodeproj 文件。

3- 进入“构建设置”并在“构建选项”中搜索 Always Embed Swift Standard Libraries

4- 将其值更新为 $(inherited)

5- 关闭项目并再次执行 pod install 命令。

enter image description here


2
我遇到了同样的错误,并通过以下方式修复:
1. 点击左侧面板中项目的蓝色图标,进入项目设置。 2. 在项目下选择您的项目。 3. 选择“Info”窗口。 4. 检查iOS部署目标。该目标应与您在项目的常规设置中设置的目标相同(见图片2)。

enter image description here

enter image description here


2
我在Xcode 10.1中遇到了相同的情况。以下是对我有效的解决方法:
  1. 打开<Project>.xcworkspace
  2. 进入你的<project_name>文件夹(默认为蓝色),删除Pods文件夹(默认为黄色)
  3. Terminal.app中再次运行pod install
  4. 然后我就可以使用CMD + R来运行模拟器了。
注:Original Answer翻译成“最初的回答”。

谢谢分享,Wei。我的Xcode版本是10.2.1,CP版本是1.5.3。这是在合并来自使用CP 1.7的队友的提交后发生的。 - MkVal
@Euridice01 在 Terminal.app 应用程序下,在您的项目文件夹中。 - Tieda Wei

1

有几件值得尝试的事情:

  • 如Keith所述,您肯定希望从synx中排除Pods
  • 您几乎肯定不想覆盖PODS_ROOT构建设置。
  • 我在一个具有多个目标的项目中看到了与您类似的错误。确保您的Podfile包括一个link_with设置,指定所有应用程序目标。
  • 如果您至少有一个测试目标,请考虑使用您的Podfile显式地将所有应用程序pod导入到您的应用程序和测试目标。
  • 我没有太多使用自定义xcconfig与CocoaPods的经验,但您可以首先尝试删除您的xcconfig,并允许CocoaPods首先生成其自己的xcconfig。

感谢您的回复,Jonathan。有几件事情需要说明:我没有使用自定义的xcconfig文件,只是尝试使用已经构建好的文件。我只覆盖了PODS_ROOT构建设置,因为它可以解决Podfile.lock和Manifest.lock丢失的错误,这个问题在运行synx之后也出现了。我只使用了一个目标,并尝试了link_with。 - mais-oui
好的,但我真的不认为这是根本问题。如果您的自定义PODS_ROOT没有解决更多问题,我会感到惊讶。 - Jonathan Hersh
这是可能的,但我该如何继续呢? - mais-oui

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接