[CocoaPods]故障排除

安裝CocoaPods

  • 若是您在macOS 10.9.0-10.9.2上安裝,當RubyGems嘗試安裝jsongem 時可能會遇到問題。要解決此問題,請遵循如下說明
  • 從macOS 10.8升級到10.9後,即便在從新安裝gem以後,已安裝的CocoaPods gem也再也不起做用。要解決此問題,您可能須要先卸載gem而後從新安裝。git

1  $ gem uninstall cocoapods
2  $ gem install cocoapods
  • gem可能沒法編譯,爲了解決這個問題,您可能須要符號連接GCC。json

  • 若是您使用的是Xcode的預發佈版本,則可能須要更新命令行工具。緩存

  • CocoaPods與MacRuby不兼容。併發

  • 若是你獲得錯誤「ERROR:執行gem時...(Errno :: EPERM);操做不容許 - / usr / bin / fuzzy_match」而後嘗試:工具

$ sudo gem install -n / usr / local / bin cocoapods

使用CocoaPods項目

  1. 使用Xcode工做區<Project>.xcworkspace,而不是Xcode項目。ui

  2. 若是某些內容彷佛不起做用,首先要確保您沒有徹底覆蓋Pods.xcconfig項目構建設置中文件中設置的任何選項。要從項目的構建設置中爲選項添加值,請在值列表前加上$(inherited)this

  3. 若是Xcode找不到依賴項的標頭:url

    • 檢查pod頭文件是否正確符號連接,Pods/Headers而且您沒有覆蓋HEADER_SEARCH_PATHS(請參閱#1)。
    • 確保您的項目正在使用Pods.xcconfig。要選中此項,請選擇項目文件,而後再次在第二個窗格中選擇它,並Info在第三個窗格中打開該部分。在配置下,您應該Pods.xcconfig爲須要安裝的pod的每一個配置選擇。
    • 若是Xcode仍然沒法找到它們,做爲最後的手段,您能夠添加您的導入,例如#import "Pods/SSZipArchive.h"
  4. 若是您收到有關沒法識別的C編譯器命令行選項的錯誤,例如cc1obj: error: unrecognised command line option "-Wno-sign-conversion"spa

    • 確保將項目構建設置配置爲使用「Apple LLVM編譯器」(clang)
    • 你設置CCCPP或者CXX環境變量,例如,在你的~/.profile?這可能會干擾Xcode構建過程。從您的~/.profile。刪除環境變量。
  5. 若是Xcode在連接時抱怨,例如Library not found for -lPods,它沒有檢測到隱式依賴:命令行

    • 轉到產品>編輯方案
    • 單擊Build
    • 添加Pods靜態庫,並確保它位於列表的頂部
    • 清潔並再次建造
    • 若是這不起做用,請驗證您嘗試包含的規範的源是否已從GitHub中提取。經過查看<Project Dir> / Pods / <您要包含的規範名稱>來執行此操做。若是它是空的(它不該該是),請驗證〜/ .cocoapods / master / <spec> / <spec> .podspec中是否包含正確的git hub url。
    • 若是仍然無效,請檢查Xcode構建位置設置。轉到首選項 - >位置 - >派生數據 - >高級,並將構建位置設置爲「相對於工做區」。
  • 若是您嘗試將應用程序提交到App Store,並發現「產品」>「存檔」在「管理器」中不產生任何內容:
    • 在Xcode「Build Settings」中,找到「Skip Install」。在應用程序目標上將「Release」的值設置爲「NO」。再次構建它應該工做。

不一樣的Xcode版本可能存在各類問題。尋求幫助並告訴咱們您正在使用的版本。

我可使用靜態庫解決'重複符號'錯誤嗎?

當您使用包含應用程序的公共依賴項的閉源第三方庫時,一般會發生這種狀況。一個蠻力解決方法是從靜態庫中刪除的依賴,如所描述這裏

可是,一般,供應商應該爲其包含的任何依賴項添加前綴,所以您無需處理它。發生這種狀況時,請聯繫供應商並要求他們將其修復,並使用上述方法做爲臨時解決方法。

運行pod命令時出現權限錯誤

從CocoaPods 0.32.0開始,咱們已經刪除了以root身份運行pod命令的功能,以防止CocoaPods在以root身份混合運行時進入不一致狀態。

若是您在一個階段以root身份運行CocoaPods,則可能會在執行某些操做時開始獲取權限被拒絕錯誤。當您遇到權限錯誤時,您可能須要刪除以root身份運行的舊文件,例如緩存數據。您可使用如下命令執行此操做。

1 $ sudo rm -fr ~/Library/Caches/CocoaPods/
2 $ sudo rm -fr ~/.cocoapods/repos/master/

除了這些全局文件以外Pods,任何地方均可能有一個目錄,你有一個Podfile。若是仍然收到權限錯誤,則應刪除此目錄,而後運行pod install

$ sudo rm -fr Pods/

我想要的修復是在master / a branch中,但我如今已經被阻止了

有一個使用CocoaPods版原本嘗試討論或實現階段的新功能的指南。

我沒有找到解決問題的方法!

咱們有多種支持途徑,這裏按照咱們喜歡的順序。

  • Stack Overflow,給本身一些上網點。這能夠減輕CocoaPods開發團隊的壓力,讓咱們有時間處理項目而不是支持。使用Stack Overflow的一個優勢是,其餘人能夠輕鬆得到答案。

  • CocoaPods郵件列表,郵件列表主要用於相關項目的公告和支持。

  • 若是您的問題是關於經過CocoaPods分發的庫(請),請參閱spec repo。

我認爲這是CocoaPods的一個錯誤

在這種狀況下,咱們但願在GitHub問題跟蹤器上獲取它,咱們使用它來跟蹤咱們必需要作的開發工做。

  • 在提交新票以前搜索票證。若是您有關於該問題的新信息,請添加到現有故障單。

  • 僅提供有關CocoaPods工具自己的文件票據。這包括CocoaPods, CocoaPods / Core和Xcodeproj。

  • 保持門票短但甜蜜。確保包含解決問題所需的全部上下文。不要過頭了。偉大的門票讓咱們專​​注於解決問題,而不是討論它們。

相關文章
相關標籤/搜索