title: Why should you include Podfile.lock under version control?
body: <p>First of all, I'd like to mention that I've read the cocoapods guide <a href="https://guides.cocoapods.org/using/pod-install-vs-update.html" rel="noreferrer">https://guides.cocoapods.org/using/pod-install-vs-update.html</a></p>
  
  <p>Still it seems somewhat unclear why should we commit Podfile.lock, in a setup where everyone is using only <strong>pod install</strong> command and we have all versions specified strictly in the 
  podfile. The .lock file seems redundant then.</p>
  
  <p>Let's say we have a project that uses ReactiveSwift. ReactiveSwift has dependency on Result pod in its podspec as follows:</p>
  
  <pre><code>  s.dependency 'Result', '~&gt; 3.2'
  </code></pre>
  
  <p>My assumption is that I shouldn't really care what the ReactiveSwift depends on, since i'm just gonna do a pod install of my strictly specified ReactiveSwift version. </p>
  
  <p>For the pods that I develop myself, i can influence their podfile and podspec to strictly specify one version that i would like to use. </p>
  
  <p>So the <em>simplified</em> flow in my project without podfile.lock would be:</p>
  
  <ol>
  <li><p>Develop a feature, if it needs a change in a dependency version - just directly specify it in a podfile, without ever commiting the Podfile.lock</p></li>
  <li><p>Merge the feature to master branch, the CI then runs a pod install command with the new podfile</p></li>
  <li><p>Now the CI has all correct versions of pods its using and can correctly build my app </p></li>
  </ol>
  
  <p>Would the Podfile.lock be needed in that scenario ?</p>