常见问题的处理。
1 安装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可能不能编译,要解决这个问题你可能需要符号连接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。
2 使用CocoaPods工程
如果某些东西似乎不工作了,首先请确认你完全没有改动你工程构建设置中Pods.xcconfig文件里的任何设置。要在你的工程构建设置添加值,优先考虑值列表中的$(inherited)。
如果Xcode找不到依赖的头文件:
- 检查是否pod头文件正确的符号连接到Pods/Headers路径,并且你没有改动HEADER_SEARCH_PATHS(见1)。
- 确保你的工程使用了Pods.xcconfig。要检查这个请选中你的工程文件,然后再在第二个窗口中选择它,并在第三个窗口打开Info部分。在配置项中,你要为每个需要已安装的pods的配置选择Pods.xcconfig。
- 如果Xcode仍然找不到它们,最后一招是你可以优先考虑你的引入,如#import “Pods/SSZipArchive.h”。
如果你得到关于不可识别的C编译器命令行选项的错误,如* cc1obj: error: unrecognised command line option “-Wno-sign-conversion”*:
- 确保你的工程构建设置被设定成了使用“Apple LLVM compiler”(当当当敲黑板)
- 你是否在,比如~/.profile文件中,设置了CC,CPP,CXX环境变量?这可能会干扰Xcode构建过程。从~/.profile文件中移除环境变量。
如果Xcode在连接时报错,如Library not found for -lPods,这说明Xcode没有探测到隐含的依赖库:
- 点击Product > Edit Scheme。
- 点击Build。
- 添加Pods静态库,并确保它在列表的顶部。
- 清理并再次构建。
如果仍然不起作用,核对你想要引入的spec源码已经从GitHub上拉下来了。你可以查看\/Pods/\<你想要引入的spec的名称>。如果这个目录是空的(它不应该是空的),核对~/.cocoapods/master/\/\.podspec里有正确的git hub url。
如果你尝试提交app到App Store,却发现”Product” > “Archive“之后在”Organizer“中什么也没有生成:
- 在Xcode的”Build Settings“中找到”Skip Install“。在你的应用目标下设置”Release“的值为”NO“。再次构建就能生效。
不同的Xcode版本可能有各种各样的问题。可以向我们请求帮助,并告诉我们你正使用的版本。
3 有没有变通办法处理静态库中的“符号重复”问题?
这通常发生在你使用的闭源第三方库包含了你的应用的公共依赖库的时候。一个野蛮-强迫的变通办法是从静态库中移除这个依赖库,像这里描述的那样。
然而,通常情况下,提供者应该真正的预置它包含的所有依赖库,因此你不需要解决这个问题。当问题发生时,请联系提供者,让他们在他们那边修改,而使用上述方法只作为临时的变通方法。
4 在运行pod命令时遇到许可错误
自CocoaPods 0.32.0版本开始我们就移除了以root身份运行pod命令的能力,以避免当你以root身份混合或搭配运行时进入异常状态。
如果你已经在一个状态以root身份运行CocoaPods,你可能开始获得在执行某些操作时许可拒绝错误。而当你偶然发现许可错误时,你需要以root身份删除旧文件,如缓存数据。你可以使用下面的命令实现这一点。
$ sudo rm -fr ~/Library/Caches/CocoaPods/
$ sudo rm -fr ~/.cocoapods/repos/master/
与这些全局文件一样,可能还有一个Pods目录在你放置Podfile文件的地方。如果你仍然受到许可错误,你应该也删除这个目录,然后运行pod install。
$ sudo rm -fr Pods/
5 解决想要到主干/分支,但是被锁定在这里的问题
这是一篇使用CocoaPods版本尝试新特性的指南,不过还在讨论或实现阶段。
6 我找不到问题的解决办法!
我们有许多支持途径,这里按照我们的推荐顺序给出。
- Stack Overflow,给你自己一些互联网元素。这会减轻CocoaPods开发团队的压力,并给我们时间为项目而不是支持工作。使用Stack Overflow的一个好处是答案可以很容易被其他人看到。
- CocoaPods Mailing List,这个邮件列表主要用于相关工程的通告和支持。
- 如果你的问题是关于(即将)从CocoaPods发布的库,参考spec repo。
7 我认为这是CocoaPods的bug
在这种情况下,我们想要通过GitHub问题跟踪获器得它,我们使用这个方式保持对我们不得不做的开发工作进行跟踪。
- 在你发布新问题前搜索标签。如果你有关于这个问题的新信息,请添加到已存在的标签上。
- 只发布关于CocoaPods工具自身的标签。包括CocoaPods, CocoaPods/Core, 和Xcodeproj。
- 保持标签简单而清晰。确保你包含了解决问题所需的所有内容。不要做过头了。好的标签会让我们关注对问题的的解决而不是讨论。
原文链接:《Troubleshooting》