This guide will show you the best ways to store and use your keys for services like Crashlytics, Slack, etc.
lane :beta do
crashlytics(api_token: "123abc", build_secret: "secret_key")
endor if you want to only define the keys once and use it multiple times
ENV["CRASHLYTICS_API_TOKEN"] = "123abc"
ENV["CRASHLYTICS_BUILD_SECRET"] = "secret_key"
lane :beta do
crashlytics
endThis is the most straight forward and easiest solution, but might cause a few issues:
- If you ever decide to open source your application you'll have to make sure to remove the keys from your git history
- If your keys got invalidated for whatever reason and you decide to rollback your code base to an earlier stage the keys will also be rolled back.
To not store your keys in git, you can pass all parameters of all actions using environment variables.
You can edit your ~/.bash_profile to include something like
export SLACK_URL="https://hooks.slack.com/services/T03NA19Q5/..."
export CRASHLYTICS_API_TOKEN="123abc"If you use a different shell (e.g. zshell) you'll need to edit ~/.zshrc instead.
After editing the bash_profile you need to either re-open your terminal session or run source ~/.bash_profile.
Disadvantages
- Every terminal tool you run gets access to your environment variables.
- You have to edit your bash profile on every computer you want to run
fastlanefrom - The bash profile isn't automatically loaded by some CI-systems like Jenkins
You can store a default configuration in .env.default which will be loaded by fastlane automatically.
SLACK_URL="https://hooks.slack.com/services/T03NA19Q5/..."
CRASHLYTICS_API_TOKEN="123abc"You might want different configurations depending on your environment.
fastlane beta --env development
and store the configuration in .env.development with all keys for the development environment.
Install sudo gem install dotenv or add dotenv to your Gemfile. More information about the recommend way to install gems.