Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add bundler #27

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Conversation

WSTurner
Copy link

Added Steps to install Bundler for ruby gem dependency management and updated cocoapods and fastlane instructions to use Bundler instead of installing the gems globally

wmcginty
wmcginty previously approved these changes Jun 23, 2020

The better way to install Cocoapods is to get off the system Ruby and use a Ruby version manager to negate the need for `sudo` access when installing or executing gems. Follow the instructions in [Ruby Environment Setup](./Ruby%20Environment%20Setup.md) to install and setup [`rbenv`](https://github.com/rbenv/rbenv).
```
gem 'cocoapods'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be worth mentioning the Gemfile.lock and it uses for keeping pinning to specific versions of Gems (and it should be committed to the repository)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitely worth mentioning! We have info about the Podfile.lock in the Dependency Management section. Stuff about the Gemfile/Gemfile.lock might technically belong there, since it's how you manage your project's "meta" dependencies (e.g. Fastlane, Cocoapods, etc.). In any case, we should probably create some sort of link between these two sections.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated Dependency Management to include information on Bundler as well as added a link to more information about dependency management in both the Cocoapods and Bundler sections here.

@wmcginty wmcginty requested a review from tylermilner June 23, 2020 23:47
@@ -15,9 +56,27 @@ In order to keep repository size as minimal as possible, most of our apps do not
* Primarily deal with sensitive data or financial transactions. For these apps, we will check in the `Pods` folder so that we can more easily audit the changes made to third party libraries as they are updated over time.
* Require a non-BR build environment. Some client build environments don't allow network connections during the build process so all pod sources need to be present in the repository at build-time.

### Understanding `pod` Commands

Assuming you are using Bundler and have not installed Cocoapods globally all of these commands are used. If you **have** install Cocoapods globally simply use `pod <command>` instead of `bundle exec pod <command>`.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me know if you think it's better to default to bundle exec pod <command> and have a note to remove bundle exec if Cocoapods is installed globally, or if we should default to pod <command> and have a note about prefixing it with bundle exec if you're using Cocoapods installed with Bundler

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I usually default to bundle exec <command> but I'm not sure if that's just me.

@@ -15,9 +56,27 @@ In order to keep repository size as minimal as possible, most of our apps do not
* Primarily deal with sensitive data or financial transactions. For these apps, we will check in the `Pods` folder so that we can more easily audit the changes made to third party libraries as they are updated over time.
* Require a non-BR build environment. Some client build environments don't allow network connections during the build process so all pod sources need to be present in the repository at build-time.

### Understanding `pod` Commands

Assuming you are using Bundler and have not installed Cocoapods globally all of these commands are used. If you **have** install Cocoapods globally simply use `pod <command>` instead of `bundle exec pod <command>`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I usually default to bundle exec <command> but I'm not sure if that's just me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants