Monthly release of Bitrise CLI tools and summary of updates (Jan)



We ship a new bitrise cli version on the second Tuesday of every month.
The new release will be available on the
virtual machines on the weekend after the CLI release,
unless we discover any serious bug / regression.

Read on to learn more about this month’s Bitrise CLI release and about the changes around bitrise tools and steps.

New version of Bitrise CLI (1.5.2)

Our frontend team is working on the offline bitrise configuration (bitrise.yml) editor, to allow our users manage the config locally.
This tool uses the bitrise-cli to load and save the config and the secrets files. To allow the editor to work with proper bitrise.yml we extended the bitrise config validation process. For more information & discussion join as at

bitrise-cli from now validates whether the workflows referenced in the trigger_map exists, and also checks for duplicate patterns with same type (in which case the second pattern would never be used).

Also an important point is to represent the bitrise.yml as simply as possible, this led us to update our config related models, to do not save empty structs to the bitrise.yml, when the config model is serialized and saved as a file.
For example step’s source and deps properties where saved as an empty struct (when these properties were empty) to the bitrise.yml, instead of omitting this options. This is an important improvement for tool developers, who build their tools around the Bitrise CLI (like the new, open source workflow editor (beta))

From now you will not get generated results like this:

    - slack:
        source: {}
        deps: {}

source and deps in this case will simply be omitted.

We also made minor changes in envman, to let the new bitrise-cli to use this updates, we updated the required envman version to 1.1.3.

New version of Envman (1.1.3)

envman used EnvsYMLModel to store the environment list, since the offline workflow editor works with both json and yml models as well, we renamed this model to EnvsSerializeModel to better represent, that it can be stored even as yml or json struct.

Also EnvsSerializeModel got a Normalize function to make the environment list json serializable, even if it was created with yml parser.

New project scanner (0.12.0) released.

The project scanner uses a shared bitrise-init package, which is used to auto-generate a bitrise config (bitrise.yml) by scanning the project.

The new version includes several updates:

android packages update scipt

extra-android-support update removed from the script, since it is removed from the google repositories.

cocoapods project-workspace mapping fixes

The scanner now handles properly the Podfile even if a custom project or workspace is defined in the Podfile.

macos support

The scanner now detects the macOS project type and creates the base workflow for you.

shared scheme link fix

If your iOS/macOS project does not contain any shared schemes, the step notifies you and the fix link will point to the correct url on our devcenter.

warn if xcshareddata is gitignored

If your shared schemes are gitignored the scanner will notify you about it.

New Steps

  • Raygun 1.0.1

Step updates

  • ipa-info 1.0.1:
    • Check for non-empty
  • install-react-native 0.9.1:
    • added android, ios project_type_tags
  • react-native-bundle 1.0.2:
    • added android, ios project_type_tags
  • deploy-to-itunesconnect-deliver 2.8.0:
    • implement missing team args
    • added macos project_type_tag
    • deliver fastlane fix: using fastlane deliver .. instead of deliver ..
    • installing / updating the fastlane gem instead of the deliver gem
  • carthage 3.0.3:
    • added macos project_type_tag
    • typo fixes
  • set-xcode-build-number 1.0.5:
    • macos project_type_tag added
  • xcode-analyze 1.6.1:
    • macos project_type_tag added
  • xcode-test-mac 1.0.6:
    • macos project_type_tag added
  • cocoapods-install 1.6.0:
    • macos project_type_tag added
    • Switched the priority; previously if both Gemfile.lock and Podfile.lock were in the repo Gemfile.lock won and the CocoaPods version defined in Gemfile.lock was used. Now Podfile.lock wins, and Gemfile.lock is only a fallback.
  • export-xcarchive 0.9.2:
    • removed rvm fix
  • project-scanner 0.12.0:
    • read more in New project scanner (0.12.0) released section
  • recreate-user-schemes 0.9.5:
    • macos project type tag added
  • xcode-archive-mac 1.3.3:
    • macos project type tag added
  • certificate-and-profile-installer 1.8.2:
    • macos project_type_tag added
  • export-xcarchive-mac 0.9.2:
    • removed rvm fix
    • macos project_type_tag added
  • deploy-to-bitrise-io 1.2.6:
    •, bitrise.yml and step.yml updates
  • xamarin-archive 1.2.0:
  • xamarin-test-cloud-for-ios 2.1.1:
    • go-xamarin update for xcarchive time format layout fix
  • apk-info 1.2.0:
    • Better way to get Android icon, 1.2.0
    • Getting better icon version
  • applivery-ios 0.2.1:
    • Added support for autoremove param that automatically removes the oldest build before uploading a new one to prevent reaching account limits. By default it’s set to true for any automatic deployment system.
  • applivery-android 0.2.1:
    • Added support for autoremove param that automatically removes the oldest build before uploading a new one to prevent reaching account limits. By default it’s set to true for any automatic deployment system.
  • hockeyapp-deploy 2.4.0:
    • go-toolkit support
    • retry request if fails
  • set-ios-info-plist-unified 1.1.4:
    • Update version to share to 1.1.4

Weekly Virtual Machine / Stack updates - 2017.01.14