Here is a rundown on the phonegap commands you can execute with version 3.6.3 PhoneGap CLI (command-line interface) using the Terminal or console.
These commands assume you have set in Terminal the starting folder in which the project files are located. So if you want the command to act on /myApp2, for example, the Terminal window command line should already include myApp2 at left, somewhere before the $. You would type your commands to the right of the $. To set the starting folder:
a. Open a Finder window and select the folder you want to create your project’s folder inside of, such as /PhonegapApps
b. Open the Terminal app (click on its icon in the dock below, or click on the magnifying glass at top right and type in “terminal”), type cd and a space (for “change directory”), drag the selected folder to the Terminal screen, let go, click on the Terminal to select it, then hit Return. This will orient all commands to that folder.
install
Install phonegap CLI with the following:
npm install -g phonegap
. . . or with the following, which requires system password:
sudo npm install -g phonegap
(Note that commands with “npm” assume you have node.js installed on your system. For more information on this, read: https://iphonedevlog.wordpress.com/2014/10/30/setting-up-your-developmemt-environment-for-cordovaphonegap-android-projects/)
–version
Find out or verify what version is installed on your system with:
phonegap --version
update
Update to 3.6.3-0.22.6 or higher with the following to gain new functionality over previous versions:
npm update -g phonegap
. . . or use the following, which requires system password (use the following if the earlier command resulted in the line: “npm ERR! Please try running this command again as root/Administrator.”):
sudo npm update -g phonegap
help
Get proper command format for using the phonegap CLI commands with:
phonegap
Get help for specific commands with the -h or –help flags:
phonegap platform add -h
Get more information to accompany your output with the -d or –verbose flags added to your command (helpful when you want to diagnose error output):
phonegap platform add android -d
Follow these next steps with me to see what they do.
create
phonegap create myApp1
This will create a default phonegap app that includes the following in your config.xml file:
<widget id="com.phonegap.helloworld" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0"> <name>Hello World</name>
create +
phonegap create myApp2 "com.companyname.appname" "App Name"
This will create a default phonegap app that includes the following in your config.xml file:
<widget id="com.companyname.appname" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0"> <name>App Name</name>
–copy-from
phonegap create myApp3 --copy-from myApp2
This will create a new app in the folder /myApp3 that is a duplicate of /myApp2. Any files in /myApp2/hooks and /myApp2/www will be copied, but not the files in /myApp2/plugins or /myApp2/platforms. Config.xml is default phonegap:
<widget id="com.phonegap.helloworld" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0"> <name>Hello World</name>
–copy-from +
phonegap create myApp4 "com.companyname.appname4" "App Name4" --copy-from myApp2
This will create a new app in the folder /myApp4 that is a duplicate of /myApp2. Any files in /myApp2/hooks and /myApp2/www will be copied, but not the files in /myApp2/plugins or /myApp2/platforms. Config.xml includes the “com.companyname.appname4” “App Name4” information from the command line:
<widget id="com.companyname.appname4" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0"> <name>App Name4</name>
–link-to
phonegap create myApp5 --link-to myApp2
Looking inside the folder, we see symlinks (aliases or shortcuts) to myApp2’s config.xml, /hooks, and /www folders. Note that if you delete myApp2’s files, then create myApp2 again, the symlinks will point to the files in the Trash, not the new myApp2 folders of the same name.
info
cd myApp5
phonegap info
This will give you the contents of the config.xml file and list all the plugins and platforms associated with the project.
platform add
phonegap platform add android
Adds the android platform files to the project. Added to /platforms/android.
platform rm
phonegap platform rm android
Removes the android platform from the project. All files of /platforms/android, including the folder, are removed.
build
phonegap build android
Adds the android (or other specified platform) to the project if it’s not there already and builds it, creating a debug version apk. Look in /myApp5/platforms to see the files generated. (See /myApp5/platforms/android/ant-build/AppName-debug.apk for the apk file to test on your device.)
plugin add
phonegap plugin add <...>
Add plugins to phonegap for increased functionality. Use the plugin syntax listed at http://docs.phonegap.com/en/3.5.0/cordova_plugins_pluginapis.md.html#Plugin%20APIs and http://plugins.telerik.com/. For instance, the following command adds the InAppBrowser plugin to the project:
phonegap plugin add org.apache.cordova.inappbrowser
Look in the /plugins folder for the files.
plugins list
phonegap plugins ls
This command will list all the plugins downloaded that are in the /plugins folder, along with their version number. For instance, this output:
org.apache.cordova.inappbrowser 0.5.3 "InAppBrowser"
plugin rm
phonegap plugin rm <...>
Removes the specified plugin. For example the following command removes the InAppBrowser plugin from the project:
phonegap plugin rm org.apache.cordova.inappbrowser
install, run
Install has been deprecated, meaning it will be removed from further use in a future version. Use run instead. Plug your Android device into your computer, fire up to the home screen, make sure you give it debugging permissions in Settings, and run:
phonegap run android
The project is built and displayed on the device.
emulate
phonegap emulate android
If Eclipse is installed and working properly, this command starts up the emulator and displays the app in it (usually starts up very slowly). Doesn’t always work for me.
serve
phonegap serve android
Displays the app in the browser. Console returns:
[phonegap] starting app server... [phonegap] listening on 192.168.254.116:3000
You then copy the URL, 192.168.254.116:3000, and paste it into a browser like Chrome. Click on Cancel for all the popups. To stop the server, click on the Terminal window then press ctrl-c.
prepare
phonegap prepare android
Use this command to update the project after any changes to the /www folder. For example, if you are making changes to files in the /www folder in response to a warning or error in Eclipse, then run the prepare command when the changes are done, then in Eclipse run Clean so Eclipse can recognize the changes.
compile
phonegap compile android
Compiles the platform project without preparing it. If you made changes that need to be incorporated into the project, run the prepare command first.
remote
Use this with development in cloud with Phonegap Build. I don’t use that service, so I can’t give any further information.
save –experimental
Add a plugin then run the following to write the info into config.xml:
phonegap save plugins --experimental
For example, if the InAppBrowser was recently added and this command was run, it’ll write the following into config.xml:
<feature name="InAppBrowser"> <param name="id" value="org.apache.cordova.inappbrowser" /> </feature>
(However, if you have removed all the gap:plugin lines from config.xml, it will not add it back in, such as <gap:plugin name=”org.apache.cordova.inappbrowser” />.)
Add a platform then run the following to save the platform info into config.xml:
phonegap save platforms --experimental
The following line is added to config.xml. It is the prerequisite for the following restore command:
<cdv:engine id="android" />
restore –experimental
phonegap restore plugins --experimental
After performing the save command and removing the plugins from the /plugins folder, this command restores all the plugins to that folder. This is helpful when debugging, and you need to remove all the plugins and reinstall them. This one command will take care of restoring all of them for you, saving time.
phonegap restore platforms --experimental
This command will restore the platforms removed from the project’s /platforms folder earlier, but only if the save command was used first. This one command will take care of restoring all of them for you, saving time.
Pingback: PhoneGap Desktop App Beta | iPhone Dev Log