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)
        
        --fetch ....................... Fetches the plugin into the project's node_modules directory. 
                                        Uses `npm install` to do the fetching.




    remove <platform> [...] ........... Remove specified platforms
        --save ........................ Delete specified platforms from config.xml after removing them
        --fetch ....................... Removes the plugin from the project's node_modules directory.
                                        Runs `npm uninstall` under the hood.


    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

        --fetch ....................... Fetches the plugin into the project's node_modules directory. 
                                        Uses `npm install` to do the fetching.

    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
