2012-07-24 273 views
37

我嘗試使用pod install更新我的pod並發現它不能正確更新除非我刪除原始pod'pod install'不更新現有的pod

是否需要一些額外的步驟或是否存在導致更新失敗的常見錯誤?

+0

什麼是你試圖運行的完整命令?你從它得到什麼輸出? – 2012-07-24 22:02:34

回答

5

您可以添加verbose標籤並查看更新期間是否顯示錯誤。

pod install --verbose 

使用--verbose是瞭解發生了什麼的最佳方法。也許它試圖從中更新的回購存在問題。很難說。

+0

我有同樣的問題。添加詳細的開關沒有給出任何提示,說明爲什麼該pod沒有更新。 – Klaas 2012-09-06 21:55:18

+0

也許@alloy可以看看這個並提供一些幫助。我注意到當你運行pod安裝時,pod並不總是刪除或更新。 – 2012-09-10 15:48:11

85

我不確定哪個版本,但是如果您將cocoapods安裝更新到最新版本,您會發現兩條新命令來幫助解決此問題。

pod outdated 

這將列出所有可用更新的豆莢。

pod update 

這將更新在上一命令

+7

「更新您的cocoapods安裝」如何:「[sudo] gem update cocoapods」 – zaph 2013-04-05 12:20:38

+0

@Zaph yup。只要你如何更新任何其他創業板 – 2013-04-07 00:10:42

+1

這解決了它對我來說。 @EdwardHuynh,Zaph的評論是必要的,因爲並不是所有使用Cocoapods的人都熟悉Ruby。 – Chris 2014-03-27 14:08:40

0

如果你的項目是configured correctly,你應該能夠刪除整個Pods目錄並運行pod install列出的豆莢。我發現這有時是在沒有正確安裝Pod時出現問題的最佳解決方案。

注:如果你開始得到錯誤像這樣當你建立:

diff: /../Podfile.lock: No such file or directory 
diff: /Manifest.lock: No such file or directory 
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. 

...你可能需要close and reopen the project in Xcode

警告:確保在刪除Pods目錄之前,您的Pods目錄中的所有文件都將被重新創建。 (即確保你沒有手動修改或添加文件到吊艙目錄。)

4

我認爲這個問題的讀者必須明白

莢之間的差異與安裝更新莢

許多以CocoaPods開始的人似乎認爲pod安裝僅在您第一次使用CocoaPods設置項目時使用,並且之後使用pod更新。但事實並非如此。

  • 使用pod install在您的項目中安裝新的窗格。即使你已經有了一個Podfile並在之前運行了pod install;所以即使你只是添加/刪除豆莢到已經使用CocoaPods的項目。
  • 僅當您要將特定窗格更新爲較新版本時才使用pod update [PODNAME]
  • 僅當您想將每個窗格更新爲更新的可用版本時才使用pod update

每當pod install命令運行時間 - 並下載和安裝新莢 - 它寫它已經安裝的版本,每個豆莢,在Podfile.lock文件。該文件會跟蹤每個吊艙的安裝版本並鎖定這些版本。 運行pod install時,它僅解決了Podfile.lock中未列出的Pod的依賴關係。 對於Podfile.lock中列出的窗格,它下載Podfile.lock中列出的顯式版本,而不嘗試檢查是否有更新版本可用 對於Podfile.lock中未列出的窗格,它將搜索與Podfile中描述的內容相匹配的版本(如在pod 'MyPod', '~>1.2'