deliver • snapshot • frameit • PEM • sigh • produce • cert • codes • spaceship • pilot • boarding • gym
-------Get in contact with the developer on Twitter: @KrauseFx
Features • Installation • Usage • Tips • Need help?
gym is part of fastlane: connect all deployment tools into one streamlined workflow.
gym builds and packages iOS apps for you. It takes care of all the heavy lifting and makes it super easy to generate a signed ipa file.
gym is a replacement for shenzhen.
xcodebuild clean archive -archivePath build/MyApp \
-scheme MyApp
xcodebuild -exportArchive \
-exportFormat ipa \
-archivePath "build/MyApp.xcarchive" \
-exportPath "build/MyApp.ipa" \
-exportProvisioningProfile "ProvisioningProfileName"
gym
gym uses the latest APIs to build and sign your application which results in much faster build times.
| Gym Features
--------------------------|------------------------------------------------------------
:rocket: | gym builds 30% faster than other build tools like shenzhen
🏁 | Beautiful inline build output
📖 | helps you resolve common build errors like code signing issues
🚠 | Sensible defaults: Automatically detect the project, its schemes and more
🔗 | Works perfectly with fastlane and other tools
:package: | Automatically generates an ipa and a compressed dSYM file
:bullettrain_side: | Don't remember any complicated build commands, just gym
🔧 | Easy and dynamic configuration using parameters and environment variables
💾 | Store common build settings in a Gymfile
💻 | All archives are stored and accessible in the Xcode Organisier
This tool is still work in progress. You can already try it by cloning the repo and running
sudo gem install gym
Make sure, you have the latest version of the Xcode command line tools installed:
xcode-select --install
gym
That's all you need to build your application. If you want more control, here are some available parameters:
gym --workspace "Example.xcworkspace" --scheme "AppName" --clean
For a list of all available parameters use
gym --help
Since you might want to manually trigger a new build but don't want to specify all the parameters every time, you can store your defaults in a so called Gymfile.
Run gym init to create a new configuration file. Example:
scheme "Example"
sdk "9.0"
output_directory "./build" # store the ipa in this folder
output_name "MyApp" # the name of the ipa filegym uses the latest APIs to build and sign your application. The 2 main components are
xcodebuild- xcpretty
When you run gym without the --silent mode it will print out every command it executes.
To build the archive gym uses the following command:
set -o pipefail && \
xcodebuild -scheme 'Example' \
-project './Example.xcodeproj' \
-configuration 'Release' \
-destination 'generic/platform=iOS' \
-archivePath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \
archive | xcpretty
After building the archive it is being checked by gym. If it's valid, it gets packaged up and signed into an ipa file
xcodebuild -exportArchive -archivePath \
'/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName 2015-08-11 18.15.30.xcarchive' \
exportFormat ipa \
-exportPath '/Users/felixkrause/Library/Developer/Xcode/Archives/2015-08-11/ExampleProductName.ipa' \ -exportProvisioningProfile 'Profile Name'
Afterwards the ipa file is moved to the output folder. The dSYM file is compressed and moved to the output folder as well.
fastlane Toolchain
fastlane: Connect all deployment tools into one streamlined workflowdeliver: Upload screenshots, metadata and your app to the App Storesnapshot: Automate taking localized screenshots of your iOS app on every deviceframeit: Quickly put your screenshots into the right device framesPEM: Automatically generate and renew your push notification profilesproduce: Create new iOS apps on iTunes Connect and Dev Portal using the command linecert: Automatically create and maintain iOS code signing certificatescodes: Create promo codes for iOS Apps using the command linespaceship: Ruby library to access the Apple Dev Center and iTunes Connectpilot: The best way to manage your TestFlight testers and builds from your terminalboarding: The easiest way to invite your TestFlight beta testers
Download and install the Provisioning Plugin.
- If there is a technical problem with
gym, submit an issue. - I'm available for contract work - drop me an email: gym@krausefx.com
This project is licensed under the terms of the MIT license. See the LICENSE file.
This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.


