What happened to Multi-Device Hybrid Apps?
Tools for Apache Cordova is simply the new name for Multi-Device Hybrid Apps for Visual Studio. Our intent has always been to make Visual Studio a great place to develop Apache Cordova apps. As a result, we decided to change the name of the product to be more reflective of our true intent.
How do I run my app on different platforms from Visual Studio?
To switch between target device platforms, you will need to use the “Solution Platforms” dropdown present in the VS toolbar. If you have installed a fresh copy of Visual Studio 2013 Update 2, it will be there by default, but it may not be present if you upgraded from a previous version. Fortunately, it is easy to add it into the toolbar as described in Microsoft Support article 2954109.
My breakpoints are not always hit when debugging in Ripple or on my Android 4.4 device or emulator. What can I do to resolve this problem?

In this release, there is a known issue where VS Debugger will not stop at breakpoints that occur prior to the first page load in Ripple or Android emulators or devices.

However, these breakpoints will be hit after refreshing the browser (Ripple) or executing the following from the JavaScript Console:


Note that debugging Android devices from versions prior to 4.4 is not supported in this release.

I am seeing Ripple hang on public or open networks, but not on my home or work network. How can I fix this problem?

Ripple starts up a local web server to proxy request and as a result can be blocked if your firewall rules explicitly disallow connections on public or open networks.

To resolve, you can either get on non-public network (or no network) or opt to temporarily allow Ripple to connect on open networks, if absolutely required, by doing the following:

  1. Open Windows Firewall settings (Search for “Windows Firewall” from the Start screen).
  2. Click “Change Settings.”
  3. Ensure Domain, Private, and Public are all checked for “Evented I/O for V8 JavaScript.”
  4. Click OK.
  5. You may need to restart VS or your PC to cause this change to take effect.

Windows Firewall settings 

While an alternate solution, it is not recommended to indicate that a public or open network is actually a home or office network when you connect to it.

I am experiencing build errors about not being able to find the Android SDK or that I am missing SDK level 19. What can I do?

First, be sure all of the necessary third-party dependencies are in your path. See Install Dependencies Manually in the documentation for details about which packages need to be installed.

How do I get around Apache Ripple™ limitations?

Ripple supports a subset of the total functionality available in Cordova. Fortunately, this code can be used to vary behavior and skip features that are not supported. 

if (typeof (window.tinyHippos) == "undefined") { 
   // not ripple 
  } else { 
   // ripple 
Ripple popped up an “I Haz Cheeseburger?!?!” message. What happened?

You are using a Cordova plugin or feature that Ripple does not support. Fortunately, you can enter your own expected API response to test your functionality. If you find the error annoying, use the Ripple Limitation workaround above.

The Android Emulator keeps crashing, how can I fix this?

We have reports of the Android emulator crashing if an x86 image is used without turning off Hyper-V and installing the Intel HAXM driver. The ARM image, however, does not have this problem. See the Android Issue Tracker for updates.

I am seeing “failed to build” errors in VS when building for iOS using the vs-mda-remote agent. How can I troubleshoot the problem?

Most likely this is due to some sort of native build problem. The most common issue is that you have not properly set up signing and provisioning. See our documentation and Apple’s developer documentation for details on resolving this issue. Regardless, you can look at the console output (or a log file) of the agent to determine what is going wrong. For example, if you do not have provisioning or signing identities configured, you may see the following error:

=== BUILD TARGET BlankCordovaApp1 OF PROJECT BlankCordovaApp1 WITH CONFIGURATION Debug === 
Check dependencies 
Code Sign error: No matching codesigning identity found: No codesigning identities 
(i.e. certificate and private key pairs) matching “iPhone Developer” were found. 
CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 7.1' 
I am encountering TypeScript compilation errors particularly when using third-party Apache Cordova™ plugins. How do I fix this?

This is because you do not have TypeScript typings for the Cordova plugins. There are a number of TypeScript definitions (.d.ts) available via NuGet or DefinitelyTyped, but note that these errors are not blocking issues; the JavaScript actually does compile despite the errors. You can also easily create definitions yourself if needed. Note that some plugins may alter standard DOM objects but you can still extend these objects in your definitions. For example:

interface Navigator {
 camera: { 
  getPicture: any 
How can I get access to the native Xcode project used to build? How can I manually build for iOS or use the emulator on a Mac?

After building for a native (non-Ripple) target for any platform, the contents of the bld/Debug (or bld/Release if you did a release build) folder is a standard Cordova Command Line Interface (CLI) project. If you install node.js and the Cordova CLI (sudo npm install -g cordova@3.4.1-0.1.0) on your Mac, you can then use these tools from a Mac.

See “Exporting a Cordova CLI Project & Accessing Native Projects” in the documentation for additional details.

An error showed up while building for a platform for the first time?

EXEC : error : ENOENT, no such file or directory 'C:\Users\<username>\.cordova\lib\android\cordova\3.x.x\VERSION'

This seems to be a bug while installing the platform code. As a workaround, go to:

Tools->Options->Tools for Apache Cordova, and under the Cordova Tools menu, choose “Clear Cache”

I just connected my Android Device to my machine and deployed to it. I got a “No Devices Found” error. What happened?

To run on an Android device, you also must install the appropriate device-specific OEM driver or the Google USB driver for Google Nexus devices. Google’s Android documentation provides a good pointer to manufacturer OEM drivers. Be sure to accept “Allow USB Debugging” when prompted.

I am seeing my application is no longer be able to access Office 365 resources using the client library APIs.

Recent changes to the Office 365 services requires an updated version of the client libraries. If you are running into issues accessing Office 365 resources in your application using the Office 365 APIs, you will need to use the updated client libraries. Here are the steps you could follow to get the updated libraries.

  • Follow the instructions to reinstall the Office 365 API tools and add Office 365 services in a new project
  • Copy the resources from existing project to the newly created project
  • Build and run your project now
I’m unable to deploy or run my app on an iOS device, and seeing extremely slow response times
  • Your device may be running a backup or installing other apps. Put your phone in Airplane mode and validate that the problem persists.
  • Validate that developer mode is enabled. Go to the Terminal app and type "DevToolsSecurity -enable" to validate.
  • Validate you can sync with your device via iTunes and that it is not attempting to sync wirelessly. This can happen even if the device is connected via USB.
    • With your device connected via USB, open iTunes, go into your device (via the device button in the upper right hand corner).
    • Ensure under options that "Sync with this iPhone over Wi-Fi" is unchecked.
    • Click the "Sync" button to validate
  • Now try again

If you are continuing to see issues after that, uninstall and reinstall Xcode

I’m trying to upgrade a project from CTP2 to CTP3 and its throwing errors.

While we do not fully support upgrading projects from one CTP to another and strongly recommending copying over your assets to a new project created with CTP3, here are some steps to mitigate the issue:

Open CTP2.0 project in VS

If this fails with an error message similar to:
The imported project "C:\Users\testuser\AppData\Roaming\npm\node_modules\vs-mda-targets\Microsoft.MDA.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

Then open the jsproj file in the editor (Right-click and select Edit myproject.jsproj) and modify the path in following lines:
<Import Project="$(AppData)\npm\node_modules\vs-mda-targets\Microsoft.MDA.targets" />
<Import Project="$(AppData)\npm\node_modules\vs-mda-targets\Microsoft.TypeScript.MDA.targets" />

To look like these:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CordovaTools\vs-mda-targets\Microsoft.MDA.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CordovaTools\vs-mda-targets\Microsoft.TypeScript.MDA.targets" />
Target Windows Phone (Universal)
  • Right click on Solution in Solution Explorer and select Configuration Manager
  • In the table click dropdown on Platform and select New
  • Set New platform to Windows Phone (Universal) (it will be in the list)
  • Set “Copy settings from” to Windows Phone
  • Hit Okay
Target Windows 8.1
In config.xml designer, set Windows Target version to Windows 8.1

CTP3 supports both plugins installed in the project in the plugins folder, as well as the old way where they are installed at build time.  If you want to convert project plugins from the old way to the new way

Core plugins:

Hit Remove and then Add on the plugin in config designer to install it in the project

Custom plugins:

Use the Custom plugin tab to install it from wherever you have it now