[CocoaPods]故障排除

安装CocoaPods

  • 如果您在macOS 10.9.0-10.9.2上安装,当RubyGems尝试安装jsongem 时可能会遇到问题。要解决此问题,请遵循以下说明
  • 从macOS 10.8升级到10.9后,即使在重新安装gem之后,已安装的CocoaPods gem也不再起作用。要解决此问题,您可能需要先卸载gem然后重新安装。

1  $ gem uninstall cocoapods
2  $ gem install cocoapods
  • gem可能无法编译,为了解决这个问题,您可能需要符号链接GCC。

  • 如果您使用的是Xcode的预发布版本,则可能需要更新命令行工具。

  • CocoaPods与MacRuby不兼容。

  • 如果你得到错误“ERROR:执行gem时...(Errno :: EPERM);操作不允许 - / usr / bin / fuzzy_match”然后尝试:

$ sudo gem install -n / usr / local / bin cocoapods

使用CocoaPods项目

  1. 使用Xcode工作区<Project>.xcworkspace,而不是Xcode项目。

  2. 如果某些内容似乎不起作用,首先要确保您没有完全覆盖Pods.xcconfig项目构建设置中文件中设置的任何选项。要从项目的构建设置中为选项添加值,请在值列表前加上$(inherited)

  3. 如果Xcode找不到依赖项的标头:

    • 检查pod头文件是否正确符号链接,Pods/Headers并且您没有覆盖HEADER_SEARCH_PATHS(请参阅#1)。
    • 确保您的项目正在使用Pods.xcconfig。要选中此项,请选择项目文件,然后再次在第二个窗格中选择它,并Info在第三个窗格中打开该部分。在配置下,您应该Pods.xcconfig为需要安装的pod的每个配置选择。
    • 如果Xcode仍然无法找到它们,作为最后的手段,您可以添加您的导入,例如#import "Pods/SSZipArchive.h"
  4. 如果您收到有关无法识别的C编译器命令行选项的错误,例如cc1obj: error: unrecognised command line option "-Wno-sign-conversion"

    • 确保将项目构建设置配置为使用“Apple LLVM编译器”(clang)
    • 你设置CCCPP或者CXX环境变量,例如,在你的~/.profile?这可能会干扰Xcode构建过程。从您的~/.profile。删除环境变量。
  5. 如果Xcode在链接时抱怨,例如Library not found for -lPods,它没有检测到隐式依赖:

    • 转到产品>编辑方案
    • 单击Build
    • 添加Pods静态库,并确保它位于列表的顶部
    • 清洁并再次建造
    • 如果这不起作用,请验证您尝试包含的规范的源是否已从GitHub中提取。通过查看<Project Dir> / Pods / <您要包含的规范名称>来执行此操作。如果它是空的(它不应该是),请验证〜/ .cocoapods / master / <spec> / <spec> .podspec中是否包含正确的git hub url。
    • 如果仍然无效,请检查Xcode构建位置设置。转到首选项 - >位置 - >派生数据 - >高级,并将构建位置设置为“相对于工作区”。
  • 如果您尝试将应用程序提交到App Store,并发现“产品”>“存档”在“管理器”中不产生任何内容:
    • 在Xcode“Build Settings”中,找到“Skip Install”。在应用程序目标上将“Release”的值设置为“NO”。再次构建它应该工作。

不同的Xcode版本可能存在各种问题。寻求帮助并告诉我们您正在使用的版本。

我可以使用静态库解决'重复符号'错误吗?

当您使用包含应用程序的公共依赖项的闭源第三方库时,通常会发生这种情况。一个蛮力解决方法是从静态库中删除的依赖,如所描述这里

但是,通常,供应商应该为其包含的任何依赖项添加前缀,因此您无需处理它。发生这种情况时,请联系供应商并要求他们将其修复,并使用上述方法作为临时解决方法。

运行pod命令时出现权限错误

从CocoaPods 0.32.0开始,我们已经删除了以root身份运行pod命令的功能,以防止CocoaPods在以root身份混合运行时进入不一致状态。

如果您在一个阶段以root身份运行CocoaPods,则可能会在执行某些操作时开始获取权限被拒绝错误。当您遇到权限错误时,您可能需要删除以root身份运行的旧文件,例如缓存数据。您可以使用以下命令执行此操作。

1 $ sudo rm -fr ~/Library/Caches/CocoaPods/
2 $ sudo rm -fr ~/.cocoapods/repos/master/

除了这些全局文件之外Pods,任何地方都可能有一个目录,你有一个Podfile。如果仍然收到权限错误,则应删除此目录,然后运行pod install

$ sudo rm -fr Pods/

我想要的修复是在master / a branch中,但我现在已经被阻止了

有一个使用CocoaPods版本来尝试讨论或实现阶段的新功能的指南。

我没有找到解决问题的方法!

我们有多种支持途径,这里按照我们喜欢的顺序。

  • Stack Overflow,给自己一些上网点。这可以减轻CocoaPods开发团队的压力,让我们有时间处理项目而不是支持。使用Stack Overflow的一个优点是,其他人可以轻松获得答案。

  • CocoaPods邮件列表,邮件列表主要用于相关项目的公告和支持。

  • 如果您的问题是关于通过CocoaPods分发的库(请),请参阅spec repo。

我认为这是CocoaPods的一个错误

在这种情况下,我们希望在GitHub问题跟踪器上获取它,我们使用它来跟踪我们必须要做的开发工作。

  • 在提交新票之前搜索票证。如果您有关于该问题的新信息,请添加到现有故障单。

  • 仅提供有关CocoaPods工具本身的文件票据。这包括CocoaPods, CocoaPods / Core和Xcodeproj。

  • 保持门票短但甜蜜。确保包含解决问题所需的所有上下文。不要过头了。伟大的门票让我们专​​注于解决问题,而不是讨论它们。

原文地址:https://www.cnblogs.com/strengthen/p/10638951.html