[英]CocoaPods how to install only one new library
我的Pod文件中有一個庫列表。 我決定在Pod文件中添加新的。 但我想保留以前的所有圖書館沒有更新,只需安裝(添加)這個庫
pod 'JSAnimatedImagesView', '~> 1.0.0'
所以pod update
和pod install
所有庫更新到更新版本,但我不想更新它們只需安裝pod 'JSAnimatedImagesView', '~> 1.0.0'
pod install --no-repo-update
這將安裝新項目而不更新現有的repos(版本化或不版本化)。
如果你有很多回購並希望快速安裝新產品,它也會更快。
(截至2019年3月15日)
要安裝1個新pod:將1個所需的新pod添加到Podfile中。 然后運行:
pod install --no-repo-update
運行此程序時,它不會更新任何其他pod 。
如果您不想更新特定庫,則應將其鎖定在要保留的版本中
pod 'AFNetworking', '1.2.0'
pod 'JSAnimatedImagesView', '~> 1.0.0'
將AFNetworking
保留在V1.2.0上,但獲取最新的JSAnimatedImagesView
這使得podfile可以轉移到其他位置(和開發人員),並使您免於忘記還原podfile,直到您打算更新pod
從項目開始時,您可能希望使用最新版本的Pod。 如果是這種情況,只需省略版本要求即可。
pod 'SSZipArchive'
稍后在項目中,您可能希望凍結到Pod的特定版本,在這種情況下,您可以指定該版本號。
pod 'Objection', '0.9'
您可以嘗試使用更新命令https://guides.cocoapods.org/terminal/commands.html#pod_update
pod update [POD_NAMES ...]
更新由指定的POD_NAMES標識的Pod。 如果未指定POD_NAMES,則會更新所有Pod,忽略Podfile.lock的內容。
將新的pod repo添加到podfile並使用bellow命令
pod install
示例窗體pod安裝與pod更新的來源
場景示例
下面是一個場景示例,用於說明在項目生命周期中可能遇到的各種用例。
階段1:User1創建項目
user1創建一個項目,並希望使用pod A,B,C。 他們使用這些pod創建Podfile,然后運行pod install。
這將安裝pod A,B,C,我們會說它們都是1.0.0版本。
Podfile.lock將跟蹤它,並注意A,B和C各自安裝為版本1.0.0。
順便說一句,因為這是他們第一次運行pod安裝並且Pods.xcodeproj項目尚不存在,該命令還將創建Pods.xcodeproj和.xcworkspace,但這是命令的副作用,而不是它的主要作用。
第2階段:User1添加了一個新的pod
之后,user1想要將Pod D添加到其Podfile中。
因此他們應該在之后運行pod安裝,這樣即使pod B的維護者從第一次執行pod安裝后發布了他們的pod版本1.1.0,該項目將繼續使用版本1.0.0 - 因為user1只想添加pod D,沒有意外更新pod B的風險
這是有些人弄錯了,因為他們在這里使用pod更新 - 可能會認為這是“我想用新的pod更新我的項目”? - 而不是使用pod安裝 - 在項目中安裝新的pod。
第3階段:User2加入項目
然后,之前從未參與過該項目的user2加入了團隊。 他們克隆存儲庫然后使用pod安裝。
Podfile.lock的內容(應該提交給git repo)將保證它們將獲得完全相同的pod,其版本與user1使用的完全相同。
即使版本1.2.0的pod C現在可用,user2也將獲得版本1.0.0中的pod C. 因為這是在Podfile.lock中注冊的內容。 pod C由Podfile.lock鎖定到1.0.0版(因此該文件的名稱)。
第4階段:檢查pod的新版本
稍后,user1想要檢查是否有可用於pod的更新。 他們運行pod過時,告訴他們pod B有一個新的1.1.0版本,pod C有一個新的1.2.0版本發布。
user1決定他們想要更新pod B,但不是pod C; 因此,他們將運行pod更新B,它將B從版本1.0.0更新到版本1.1.0(並相應地更新Podfile.lock),但將pod C保留在1.0.0版本中(並且不會將其更新為1.2。 0)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.