Code Push Versions Save

A cloud service that enables Cordova and React Native developers to deploy mobile app updates directly to their users’ devices.

v1.12.9-beta

7 years ago

This is a small incremental release with a needed bugfix. Thank you @max-mironov for your contributions this release!

New Features:

  1. Release build type for Cordova builds. When the release-cordova command is executed with the new isReleaseBuildType flag alongside the build flag, a release build will be performed instead of a debug build.

Bug Fixes:

  1. Fix the command-line parsing of boolean flags that was regressed in 1.12.8-beta.

v1.12.8-beta

7 years ago

This release introduces more user control over how versions are released and promoted, as well as multiple bug fixes. It is available now on NPM and can be installed by running npm i -g code-push-cli@latest.

New Features:

  1. Promoting specific versions. The code-push promote command will now accept a --label/-l parameter to promote a specific label from one deployment to the other, as opposed to the latest version. This was a highly requested feature!
  2. Saving bundles and sourcemaps. Add a --outputDir/-o parameter to the release-react command to write the bundle and sourcemap to a specified directory. This should help make debugging easier, as well as allowing integration with crash reporting solutions.
  3. Customizing the node environment. Allow arguments to node to be specified when running the release-react command. For example, out-of-memory issues for very large apps can be overcome by running a command like env NODE_ARGS="--max-old-space-size=4096" code-push release-react APP_NAME ios. Thanks @zk!

Bug Fixes:

  1. Display an error message when running code-push debug android while multiple devices are active.
  2. Make the confirmation prompt more severe on app rm and deployment rm commands, to further prevent accidental deletion.
  3. Improve the robustness of the release-react command on Android when parsing gradle files.
  4. Check that the app and deployment exist before building releases, as opposed to after.

v1.12.6-beta

7 years ago

Bug Fixes

  • Fix an issue where users would see a 500 or 502 error message when attempting to make a release when their session was expired

v1.12.5-beta

7 years ago

New Features (CLI)

This release adds a --noDuplicateReleaseError flag that causes the CLI to generate a warning instead of an error when the user attempts to publish an update that is identical to the latest release. This is useful for continuous integration scenarios where it is expected that small modifications may trigger releases where no production code has changed.

New Features (Management SDK)

Improved error handling in the management SDK, including error codes that identify different categories of errors.

Bug Fixes

  • Fix an issue where in some cases, access keys were not validated when logging in
  • Fix an issue where in some cases, error messages were not displayed when access keys were invalid
  • Remove 'authentication failed' error message when attempting to logout after a previous failure
  • Add a descriptive error message when there is a network failure preventing connection to the CodePush server, and prevent a null de-referencing error when this happens

v1.12.3-beta

7 years ago

New Features

This release adds a new gradle file parameter (--gradleFile or -g) to the release-react command. It allows Android users to specify a custom path to the build.gradle file that the command reads to infer the targetBinaryVersion of the release. Huge thanks to @mtunique for adding this feature!

Bug Fixes

App versions are no longer implicitly converted to numbers. For example, 8.10 will no longer be incorrectly parsed as 8.1.

v1.12.1-beta

7 years ago

This release simply improves the performance of the app ls command for users with a large number of apps registered with the CodePush service.

v1.12.0-beta

7 years ago

This is a feature-packed release which addresses a handful of commonly requested user stories. Thanks to everyone for the amazing feedback! It is available now on NPM and can be installed by running npm i -g code-push-cli@latest.

New Features (General)

  1. CodePush integration can now be easily diagnosed directly from our CLI We've added a lot of debug logs to the CodePush plugins to help make it easier to understand how it's behaving and why. However, viewing these logs requires using a different tool between iOS and Android (e.g. logcat), and potentially between Cordova and React Native. To simplify the need to quickly identify the source of an issue with your app's CodePush integration, the CLI now includes a new debug command which lets you view all of the CodePush plugin's logs directly within the CLI.

    View the docs for more details.

    screen shot 2016-06-21 at 10 15 42 am
  2. Access key expiration can now be configured The access-key add command now supports an additional --ttl parameter, which lets you specify how long an access key should be usable for, which gives you greater control over the impact that a key can have, in case you forget to explicitly delete it. By default, new keys will expire in 60 days, but you can change this to whatever fits your desired policy and/or use case (e.g. 6m, 2y).

    # Create a temporary key to use for CI that will expire in 2 weeks
    code-push access-key add "CI Environment" --ttl 2w
    

    Additionally, as part of our efforts to improve security, the value of an access key will no longer be displayed in the CLI (since we are now hashing them in the database), so make sure to persist the value somewhere safe!

  3. Access keys can now be renamed The CLI now includes a new access-key patch command which lets you modify the name and/or TTL (see #2) of an existing access key.

    # Rename the VSTS key to reflect its purpose more generically
    code-push access-key patch "VSTS Integration" --name "CI Key"
    
  4. Login sessions are now managed separately from access keys The CLI includes a new session ls command, which allows you to view all of the current login sessions associated with your account. Additionally, the new session rm command allows you to revoke a login session that you don't want to be usable anymore. This functionality was previously available via the access-key ls and access-key rm commands, however, we believe that separating the concepts of login sessions and access keys provides a simplified experience, and makes it easier to spotting unidentified and/or undesired login sessions.

    screen shot 2016-06-21 at 2 48 07 pm
  5. Azure Active Directory is now a supported authentication provider Users who want to be able to register/login with their work and/or school account, can now use Azure Active Directory in addition to the existing GitHub and Microsoft support.

    screen shot 2016-06-21 at 2 45 34 pm

New Features (Android)

  1. The release-react command will now automatically infer the target binary version of a CodePush release when your build.gradle file is referencing its versionName via a property in your grade.properties file.

    Example build.gradle file:

    android {
        defaultConfig {
            versionName VERSION_NAME
        }
    }
    

    Corresponding gradle.properties file:

    VERSION_NAME=1.2.3
    

New Features (iOS)

  1. The release-react command supports two new parameters to allow customizing which Info.plist file is used to infer the target binary version of a CodePush release: --plistFile and --plistFilePrefix. We hope these allow more apps to release updates without needing to explicitly specify the --targetBinaryVersion parameter.

    # Release a new update, targeting it at the binary version 
    # specified in the STAGING-Info.plist file
    code-push release-react foo ios --pre STAGING
    

v1.11.0-beta

8 years ago

This release introduces support for connecting to the CodePush server via a proxy, and includes a few improvements to the release-* commands. It is available now on NPM and can be installed by running npm i -g code-push-cli@latest.

New Features

  1. Proxied connections The code-push login command will now check for the presence of a system-wide proxy, and use it to connect to the CodePush server. If you don't want the CLI to use this behavior, you can specify the --noProxy parameter to connect directly to CodePush. Additionally, if you'd like to use a proxy connection to CodePush, which isn't configured system-wide, you can specify the --proxy parameter.

    # Ignore any system proxy settings
    code-push login --noProxy
    
    # Specify an explicit proxy server
    code-push login --proxy https://foo.bar:4563
    
  2. PhoneGap support The release-cordova command now supports automatically preparing/building your app if you have the PhoneGap CLI installed as opposed to requiring Cordova.

Bug Fixes

  1. The release-react command now correctly generates your JS bundle file on machines with case-sensitive file systems (e.g. Linux).

v1.10.0-beta

8 years ago

New Features

  1. You can now release updates to your React Native apps on Windows 10 devices In order to align with the new Windows support for React Native, the release-react command now supports specifying windows as the platform, which will generate the appropriate app update, infer your app's version and release it to CodePush! We look forward to working with the community as the support for Windows continues to evolve. View the CLI docs for more details.

    $ code-push release-react MyApp windows
    
  2. The release-cordova command now includes an additional flag called --build (or -b), which specifies that you want to run a cordova build instead of simply cordova prepare when generating your app update. This can be helpful if your app relies on before or after Cordova build hooks. View the CLI docs for more details.

    # Release an update to CodePush that will
    # ensure your Cordova build hooks are executed
    $ code-push release-cordova MyApp ios -b
    

v1.9.1-beta

8 years ago

New Features

  1. The patch and promote commands include a new optional parameter called --targetBinaryVersion (or -t), which allows you to edit the respective attribute for an existing CodePush release. This change makes it so that all metadata associated with a release is editable via a patch or promote operation, and allows you to correct a mistake made when performing a release, increase or decrease the binary version compatibility of a release and/or use different versioning schemes between deployments.

    # Add a "max binary version" to an existing release
    # by scoping its eligibility to users running >= 1.0.5
    code-push patch MyApp Staging -t "1.0.0 - 1.0.5"
    
    # Promote the release to production and make it 
    # available to all versions using that deployment
    code-push promote MyApp Staging Production -t "*"