Synopsis

    cordova-cli platform <command> [options]

Manage project platforms

    add <plat-spec> [...].............. Add specified platforms
        --save ........................ Save specified platforms into config.xml after installing them

        --link ........................ When <plat-spec> is a local path, links the platform
                                        library directly instead of making a copy of it (support
                                        varies by platform; useful for platform development)



    remove <platform> [...] ........... Remove specified platforms
        --save ........................ Delete specified platforms from config.xml after removing them

    update <plat-spec> ................ Update the version of Cordova used for a specific platform;
                                        update to the latest <version> if no <plat-spec> is specified

        --save ........................ Save the latest versions for specified platforms into config.xml

    list .............................. List all installed and available platforms
    check ............................. List platforms which can be updated by `cordova-cli platform update`
    save .............................. Save version of all platforms added to config.xml

Syntax
    <plat-spec> : <platform>[@<version>]|<path>|<url>[#<commit-ish>]

    <platform> ........................ Platform name e.g. android, ios, windows etc.
    <version> ......................... Major.minor.patch version specifier using semver
    <path> ............................ Path to a directory containing a platform
    <url> ............................. Url to a git repository containing a platform
    <commit-ish> ...................... Commit/tag/bramch reference. If none is specified, 'master' is used
    
Aliases
    platforms -> platform
    rm -> remove
    ls -> list

Examples
    cordova-cli platform add android ios --save
    cordova-cli platform add android@^5.0.0 --save
    cordova-cli platform add https://github.com/myfork/cordova-android.git#4.0.0 --save
    cordova-cli platform add ../android --save
    cordova-cli platform add ../cordova-android.tgz --save
    cordova-cli platform rm android --save
    cordova-cli platform ls