A cloud service that enables Cordova and React Native developers to deploy mobile app updates directly to their users’ devices.
This is a small incremental release with a needed bugfix. Thank you @max-mironov for your contributions this release!
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.1.12.8-beta
.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
.
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!--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.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!code-push debug android
while multiple devices are active.app rm
and deployment rm
commands, to further prevent accidental deletion.release-react
command on Android when parsing gradle files.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.
Improved error handling in the management SDK, including error codes that identify different categories of errors.
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!
App versions are no longer implicitly converted to numbers. For example, 8.10
will no longer be incorrectly parsed as 8.1
.
This release simply improves the performance of the app ls
command for users with a large number of apps registered with the CodePush service.
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
.
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.
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!
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"
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.
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.
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
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
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
.
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
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.
release-react
command now correctly generates your JS bundle file on machines with case-sensitive file systems (e.g. Linux).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
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
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 "*"