[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)。
* 確保問題描述簡介有效。 確保包含解決問題所需的所有上下文。 不要過頭。 優秀的問題描述讓我們專注于解決問題而不是討論它們。