<安装 CocoaPods
- 如果你在 macOS 10.9.0-10.9.2 上安装,当 RubyGems 尝试安装
json
gem 时,你可能会遇到问题。要解决此问题,请按照 这些 说明进行操作。 -
从 macOS 10.8 升级到 10.9 后,即使重新安装 gem,已安装的 CocoaPods gem 也不再起作用。要解决此问题,你可能需要先卸载 gem,然后再重新安装。
$ gem uninstall cocoapods $ gem install cocoapods
gem 可能无法编译,要解决此问题,你可能需要 链接 GCC。
如果你使用 Xcode 的预发布版本,你可能需要更新命令行工具。
CocoaPods 与 MacRuby 不兼容。
如果你收到错误“ERROR: While executing gem ... (Errno::EPERM); Operation not permitted - /usr/bin/fuzzy_match”,请尝试:$ sudo gem install -n /usr/local/bin cocoapods
<使用 CocoaPods 项目
使用 Xcode 工作区
<Project>.xcworkspace
,而不是 Xcode 项目。如果某些内容似乎不起作用,首先确保你没有完全覆盖项目构建设置中
Pods.xcconfig
文件设置的任何选项。要向项目构建设置中的选项添加值,请在值列表前加上$(inherited)
。-
如果 Xcode 找不到依赖项的标头
- 检查 pod 标头文件是否在
Pods/Headers
中正确链接,并且你没有覆盖HEADER_SEARCH_PATHS
(请参见 #1)。 - 确保你的项目正在使用
Pods.xcconfig
。要检查此内容,请选择你的项目文件,然后在第二个窗格中再次选择它,并在第三个窗格中打开Info
部分。在配置下,你应为每个需要已安装 pod 的配置选择Pods.xcconfig
。 - 如果 Xcode 仍然找不到它们,作为最后的手段,你可以添加你的导入,例如
#import "Pods/SSZipArchive.h"
。
- 检查 pod 标头文件是否在
-
如果你收到有关无法识别的 C 编译器命令行选项的错误,例如
cc1obj: error: unrecognised command line option "-Wno-sign-conversion"
- 确保项目构建设置已 配置 为使用“Apple LLVM 编译器”(clang)
- 您是否在设置
CC
、CPP
或CXX
环境变量,例如在您的~/.profile
中?这可能会干扰 Xcode 构建过程。从您的~/.profile
中移除环境变量。
-
如果 Xcode 在链接时发出抱怨,例如
Library not found for -lPods
,它未检测到隐式依赖项- 转到产品 > 编辑方案
- 点击构建
- 添加
Pods
静态库,并确保它位于列表顶部 - 再次清理并构建
- 如果这不起作用,请验证您尝试包含的规范的源已从 GitHub 中提取。通过查看 <Project Dir>/Pods/<您尝试包含的规范的名称> 来执行此操作。如果它为空(它不应为空),请验证 ~/.cocoapods/master/<spec>/<spec>.podspec 中具有正确的 git hub url。
- 如果仍然不起作用,请检查您的 Xcode 构建位置设置。转到首选项 -> 位置 -> 派生数据 -> 高级,并将构建位置设置为“相对于工作区”。
- 如果您尝试将应用提交到 App Store,并发现“产品”>“存档”在“组织者”中没有任何内容
- 在 Xcode“构建设置”中,找到“跳过安装”。在您的应用程序目标上将“发布”的值设置为“否”。再次构建,它应该可以正常工作。
不同的 Xcode 版本可能存在各种问题。寻求帮助并告诉我们您正在使用哪个版本。
<我可以用静态库解决“重复符号”错误吗?
这通常发生在您使用包含应用程序公共依赖项的闭源第三方库时。一种蛮力解决方法是从静态库中移除依赖项,如 此处 所述
然而,一般来说,供应商应该真正为其包含的任何依赖项添加前缀,这样您就不必处理它。当这种情况发生时,请联系供应商并要求他们在其方面修复它,并使用上述方法作为临时解决方法。
<在运行 pod 命令时出现权限错误
从 CocoaPods 0.32.0 开始,我们移除了以 root 身份运行 pod 命令的功能,以防止在以 root 身份混合和匹配运行时,CocoaPods 进入不一致的状态。
如果你在某个阶段以 root 身份运行了 CocoaPods,那么在执行某些操作时,你可能会开始收到权限被拒绝的错误。当遇到权限错误时,你可能需要删除以 root 身份运行的旧文件,例如缓存数据。你可以使用以下命令执行此操作。
$ sudo rm -fr ~/Library/Caches/CocoaPods/
$ sudo rm -fr ~/.cocoapods/repos/master/
除了这些全局文件之外,在任何有 Podfile 的地方也可能有一个 Pods
目录。如果你仍然收到权限错误,你应该也删除此目录,然后运行 pod install
。
$ sudo rm -fr Pods/
<我想要的修复程序在 master / 某个分支中,但我现在被阻止了
有一个 使用 CocoaPods 版本来尝试新功能的指南,这些功能正在讨论或处于实施阶段。
<我没有找到解决我问题的办法!
我们有多种支持途径,按我们喜欢的顺序排列如下。
Stack Overflow,获得一些互联网积分。这可以减轻 CocoaPods 开发团队的压力,并让我们有时间致力于该项目,而不是支持。使用 Stack Overflow 的一个好处是,答案很容易被其他人访问。
CocoaPods 邮件列表,邮件列表主要用于宣布相关项目和提供支持。
如果你的问题与通过 CocoaPods 分发的库(待分发)有关,请参阅 规范存储库。
<我认为这是 CocoaPods 的一个错误
在这种情况下,我们希望在 GitHub 问题跟踪器中解决它,我们使用它来跟踪我们必须完成的开发工作。
在提交新问题之前搜索问题。如果你有关于该问题的新信息,请添加到现有问题中。
仅提交有关 CocoaPods 工具本身的问题。这包括 CocoaPods、CocoaPods/Core 和 Xcodeproj。
问题要简短但内容丰富。确保包含解决问题所需的所有背景信息。不要做得太过。好的问题让我们能够专注于解决问题,而不是讨论问题。