Added pod files and pushed. How to undo? how to use gitignore in Xcode & github? Added pod files and pushed. How to undo? how to use gitignore in Xcode & github? xcode xcode

Added pod files and pushed. How to undo? how to use gitignore in Xcode & github?


That's correct, you need to add the Pods directory to your .gitignore

1) Remove your files from your github repository:

git rm -r Pods/

and don't forget to commit and push

2) Create a gitignore file:

  1. Open terminal and go through your project folder where the .git folder is located
  2. Type touch .gitignore
  3. Type echo "Pods/" > .gitignore

More informations : here


This is what Cocoapods official documentation has to say.

Whether or not you check in your Pods folder is up to you, as workflows vary from project to project.
It recommends that you keep the Pods directory under source control, and don't add it to your .gitignore. But ultimately this decision is up to you:

Benefits of checking in the Pods directory:

  1. After cloning the repo, the project can immediately build and run, even without having CocoaPods installed on the machine. There is no need to run pod install, and no Internet connection is necessary.
  2. The Pod artifacts (code/libraries) are always available, even if the source of a Pod (e.g. GitHub) were to go down.
  3. The Pod artifacts are guaranteed to be identical to those in the original installation after cloning the repo.

Benefits of ignoring the Pods directory:

1.The source control repo will be smaller and take up less space.As long as the sources (e.g. GitHub) for all Pods are available, CocoaPods is generally able to recreate the same installation. (Technically there is no guarantee that running pod install will fetch and recreate identical artifacts when not using a commit SHA in the Podfile. This is especially true when using zip files in the Podfile.)

2.There won't be any conflicts to deal with when performing source control operations, such as merging branches with different Pod versions.

Whether or not you check in the Pods directory, the Podfile and Podfile.lock should always be kept under version control.

Reference Link:Cocoapods Official Documentation


Things to give attention when you add /Pods into .gitignore

If you are working in a team, your teammates may face issues while installing pods in their machines and the most likely reason is Podfile.lock.

In summary, Podfile.lock makes sure you don't accidentally upgrade the libraries you pull in while keeping your Podfile concerned only with the new dependencies.

Why Podfile.lock may cause problems?

Podfile.lock locks the project with versions installed the first time and when you execute pod install again, this will only install any new library in Podfile and will not affect your existing libraries by updating them to latest code.

In case of pulling repo does not contain /Pods, Podfile.lock locks versions of pods that do not exist in your machine because of .gitignore and expecting that these libraries are existing.

Easy solution to go with

Just remove Podfile.lock then execute pod install and Podfile.lock will be generated again with versions of pods you installed.

Note: After removing Podfile.lock and installing the pods, you may interact with different versions of pods than your team.