[TOC]
# 1. 安装CocoaPods
* 如果您在 macOS 10.9.0-10.9.2 上安装,当 RubyGems 试图安装 json gem 时,您可能会遇到一个问题。按照[这些指示](https://gist.github.com/alloy/62326fcbc5b8ef987c17)来修复。
* 从 macOS 10.8 升级到 10.9 后,即使重新安装了 Gem,安装的 CocoaPods gem 也无法工作。 要解决这个问题,您可能需要先卸载该 gem,然后重新安装。
~~~
$ gem uninstall cocoapods
$ gem install cocoapods
~~~
* gem可能无法编译,为解决这个问题,您可能需要 [链接GCC](http://www.relaxdiego.com/2012/02/using-gcc-when-xcode-43-is-installed.html)
* 如果您使用Xcode的预发布版本,则可能需要更新 command line tools 。
* CocoaPods 与 MacRuby 不兼容。
* 如果出现错误`"ERROR: While executing gem ... (Errno::EPERM); Operation not permitted - /usr/bin/fuzzy_match"`,请尝试:
~~~
$ sudo gem install -n / usr / local / bin cocoapods`
~~~
# 2. 使用 CocoaPods 项目
1. 使用 Xcode workspace `<Project>.xcworkspace`, 而不是 Xcode project
2. 如果某些东西看起来不起作用,首先要确保您不完全覆盖项目构建设置中从 Pods.xcconfig 文件中设置的任何选项。 要为项目的构建设置中的选项添加值,请在 `$(inherited)` 前加上值列表。
3. 如果Xcode无法找到依赖关系的头文件:
* 检查 pod 头文件是否在 `Pods / Headers` 中正确符号链接,并且不覆盖`HEADER_SEARCH_PATHS`(请参阅#1)。
* 确保您的项目正在使用 Pods.xcconfig 。 要选中此项目,请选择您的项目文件,然后再次在第二个窗格中选择它并在第三个窗格中打开“Info”部分。 在配置下,您应该为需要安装的 Pod 的每个配置选择 Pods.xcconfig。
* 如果 Xcode 仍然无法找到它们,作为最后的手段,您可以预先输入您的导入内容,例如 `#import“Pods / SSZipArchive.h”`。
4. 如果您遇到无法识别的C编译器命令行选项的错误,例如
`cc1obj: error: unrecognised command line option "-Wno-sign-conversion"`
* 确保您的项目构建设置被配置为使用“Apple LLVM编译器”(clang)
* 您是否设置了 CC,CPP 或 CXX 环境变量,例如 在你的 〜/ .profile 中? 这可能会干扰 Xcode 构建过程。 从 〜/ .profile 中移除环境变量
5. 如果 Xcode 在链接时抱怨,例如 `Library not found for -lPods`,它不检测隐式依赖关系:
* Product > Edit Scheme
* >Build
* 添加 Pods 静态库,并确保它位于列表的顶部
* Clean 然后重新 build
* 如果这不起作用,请确认您试图包含的规范的源代码已从 GitHub 中提取。通过查找`<项目目录> / Pods / <您要包含的规范的名称>`来执行此操作。如果它是空的(不应该是),请验证` 〜/ .cocoapods / master / <spec> / <spec> .podspec` 在其中包含正确的 GitHub 网址。
* 如果仍然不起作用,请检查您的 Xcode 构建位置设置。转到 `Preferences -> Locations -> Derived Data -> Advanced`,并将生成位置设置为“Relative to Workspace”。
6. 如果您尝试将应用提交至 App Store,并发现 `"Product > Archive"` 在“Organizer”中不产生任何内容:
* 在 Xcode 的“Build Settings”中,找到“Skip Install”。 在您的应用程序目标上将“Release”的值设置为“NO”。 再次建立,它应该正常工作。
不同的 Xcode 版本可能会有各种问题。 请求帮助,并告诉我们您使用的是什么版本。
# 3. 我可以用静态库解决 'Duplicate Symbol' 错误吗?
这通常发生在使用包含应用程序通用依赖关系的闭源第三方库时。 一个蛮力的解决方法是从静态库中删除依赖项,如[此处所述](http://atnan.com/blog/2012/01/12/avoiding-duplicate-symbol-errors-during-linking-by-removing-classes-from-static-libraries)。
但是,通常情况下,供应商应该为其包含的任何依赖项添加前缀,因此您不需要处理它。 发生这种情况时,请与供应商联系,并要求他们将其修复,并将上述方法作为临时解决方法。
# 4. 运行 pod 命令时出现许可错误
从 CocoaPods 0.32.0 开始,我们删除了以 root 用户身份运行 pod 命令的功能,以防止 CocoaPods 在以 root 用户身份混合和匹配运行时进入不一致状态。
如果您在一个阶段以 root 身份运行 CocoaPods,则在执行特定操作时可能会开始获取权限被拒绝的错误。 当您遇到许可错误时,您可能需要删除以超级用户身份运行的旧文件,例如缓存数据。 您可以使用以下命令执行此操作。
~~~
$ sudo rm -fr ~/Library/Caches/CocoaPods/
$ sudo rm -fr ~/.cocoapods/repos/master/
~~~
除了这些全局文件之外,在任何有 Podfile 的地方也可能有一个 Pods 目录。 如果您仍然收到权限错误,则应该删除此目录,然后运行 pod 安装。
~~~
$ sudo rm -fr Pods/
~~~
# 5. 我想要的修正是在 master /分支中,但我现在被阻止
有一个使用 CocoaPods 版本来尝试正在讨论或正在实施阶段的[新功能的指南](https://guides.cocoapods.org/using/unreleased-features)。
# 6. 我没有找到解决我的问题的方法!
我们有多种支持渠道,在这里他们按照我们喜欢的顺序
* [Stack Overflow](http://stackoverflow.com/search?q=CocoaPods):这样就可以减少 CocoaPods 开发团队的压力,并让我们有时间在项目上工作,而不是支持。使用 Stack Overflow 的优点之一是,对于其他人来说,答案很容易访问。
* [CocoaPods Mailing List](http://groups.google.com/group/cocoapods):邮件列表主要用于相关项目的公告和支持。
* 如果您的问题是关于通过 CocoaPods 分发的库,请参阅 [spec repo](https://github.com/CocoaPods/Specs)
# 7. 我认为这是 CocoaPods 的一个错误
在这种情况下,我们希望在一个 GitHub 问题跟踪器上获取它,我们用它来跟踪我们必须做的开发工作。
* 在提交新问题之前搜索问题。 如果您有关于该问题的新信息,请添加到现有的故障单。
* 只有关于 CocoaPods 工具本身的问题。 这包括[ CocoaPods](https://github.com/CocoaPods/CocoaPods/issues),[CocoaPods / Core](https://github.com/CocoaPods/Core/issues) 和 [Xcodeproj](https://github.com/CocoaPods/Xcodeproj/issues)。
* 确保问题描述简介有效。 确保包含解决问题所需的所有上下文。 不要过头。 优秀的问题描述让我们专注于解决问题而不是讨论它们。