上一章CocoaPods教程请查看:Podfile文件解释和使用
安装CocoaPods
- 如果你正在安装macOS 10.9.0-10.9.2,那么当RubyGems试图安装json gem时,你可能会遇到一个问题。要修复此问题,请遵循以下说明。
- 从macOS 10.8升级到10.9之后,安装的CocoaPods gem就不能再工作了,即使重新安装了gem。要解决这个问题,你可能需要先卸载gem,然后重新安装。
$ gem uninstall cocoapods
$ gem install cocoapods
- gem可能无法编译,为了解决这个问题,你可能需要symlink 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
- 使用Xcode工作空间< Project>.xcworkspace,而不是Xcode项目。
- 如果有些东西似乎不工作,首先要确保没有完全覆盖Pods.xcconfig文件中设置的所有选项,要向项目构建设置中的选项添加值,请在值列表前加上$(inherited)。
- 如果Xcode找不到依赖项的头信息:
- 检查pod头文件在Pods/ header中的符号链接是否正确,并且没有覆盖HEADER_SEARCH_PATHS(参见#1)。
- 确保您的项目使用了Pods.xcconfig。要检查此选项,请选择项目文件,然后在第二个窗格中再次选择它,并在第三个窗格中打开Info部分。在配置下,你应该为每个需要安装的Pod的配置选择Pods.xcconfig。
- 如果Xcode仍然找不到它们,作为最后的手段,你可以预先导入,例如#import“Pods/SSZipArchive.h”。
- 如果你得到错误关于不识别的C编译器命令行选项,例如:cc1obj: error: unrecognised command line option “
-Wno-sign-conversion“
:
- 确保你的项目构建设置已配置为使用“Apple LLVM compiler”(clang)
- 你是否正在设置CC、CPP或CXX环境变量,例如在~/.profile中?这可能会干扰Xcode的构建过程,从~/.profile文件中删除环境变量。
- 如果Xcode在链接时报错,例如Library not found for -lPods,它不会检测到隐式依赖关系:
- 转到Product>Edit Scheme编辑方案
- 点击build构建
- 添加Pods静态库,并确保它位于列表的顶部
- clean并重建
- 如果这不起作用,请验证你试图包含的规范的源代码是否已从GitHub中删除。通过查找< Project Dir>/Pods/< 你想要包含的规范名称>。如果是空的(不应该是空的),验证~/.cocoapods/master/< spec>/< spec>.podspec中是否有正确的git hub url。
- 如果仍然不能工作,请检查Xcode构建位置设置。转到首选项->位置->派生数据->高级(Preferences -> Locations -> Derived Data -> Advanced),并设置构建位置为“相对于工作区(Relative to Workspace)”。
- 如果你尝试提交app到app Store,发现“Product”>“Archive”在“Organizer”中没有任何结果:
- 在Xcode“构建设置”中,找到“跳过安装(Skip Install)”。在你的应用程序target上将“Release”的值设置为“NO”。重新构建,它应该可以工作。
但是,通常情况下,供应商应该在其包含的所有依赖项前面加上前缀,这样你就不需要处理它了。当这种情况发生时,请联系供应商,请他们将其修复,并使用上述方法作为临时解决方案。
在运行pod命令时得到权限错误从CocoaPods 0.32.0开始,我们已经取消了以根用户身份运行pod命令的功能,以防止CocoaPods在以根用户身份运行时进入不一致的状态。
如果你在某个阶段以根用户身份运行CocoaPods,那么在执行某些操作时,你可能会开始获得被拒绝的权限错误。当你遇到权限错误时,你可能需要删除以root身份运行的旧文件,如缓存数据。你可以使用以下命令来完成此任务。
$ sudo rm -fr ~/Library/Caches/CocoaPods/
$ sudo rm -fr ~/.cocoapods/repos/master/
除了这些全局文件之外,在你拥有Podfile的任何地方都可能有一个Pods目录。如果你仍然收到权限错误,你也应该删除这个目录,然后运行pod install。
$ sudo rm -fr Pods/
我没有找到解决问题的办法!【CocoaPods常见问题和解决办法 – CocoaPods教程】我们有多种支持途径,以下是我们喜欢的顺序。
- 堆栈溢出,给你自己一些互联网点。这让CocoaPods开发团队没有压力,让我们有时间去做项目,而不是去支持它。使用Stack Overflow的一个好处是其他人可以很容易地找到答案。
- CocoaPods邮件列表,邮件列表主要用于相关项目的公告和支持。
- 如果您你问题是关于通过CocoaPods分发库的,请参考spec repo。
推荐阅读
- CocoaPods测试 – CocoaPods教程
- Podfile文件解释和使用 – CocoaPods教程
- CocoaPods使用详细步骤解释 – CocoaPods教程
- pod install和pod update – CocoaPods教程
- 安装和使用CocoaPods – CocoaPods教程
- Objective-C内存管理详细解释 – Objective-C开发教程
- Objective-C快速枚举用法 – Objective-C开发教程
- Objective-C泛型介绍和用法 – Objective-C开发教程
- Objective-C Foundation框架全解 – Objective-C开发教程