[CocoaPods]故障排除

安装CocoaPods

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

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

  • 若是您使用的是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项目。ui

  2. 若是某些内容彷佛不起做用,首先要确保您没有彻底覆盖Pods.xcconfig项目构建设置中文件中设置的任何选项。要从项目的构建设置中为选项添加值,请在值列表前加上$(inherited)this

  3. 若是Xcode找不到依赖项的标头:url

    • 检查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"spa

    • 确保将项目构建设置配置为使用“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。

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

相关文章
相关标签/搜索