Cordova updates and the pain!

Being back after a long time!

You know I have to be here and there, everywhere!

So there was this error, wasting my days from a long time!

And whenever I do an update, this used to come back on my ios builds.

Plugins/cordova-plugin-whitelist/CDVNavigationWhitelistPlugin.h:23:9: fatal error: 
      'Cordova/CDVURLRequestFilter.h' file not found
#import <Cordova/CDVURLRequestFilter

And I searched internet for long (2 months I recall!) but no solutions!

Funny thing,

Earlier, any problem I used to have, I simply did

cordova platform remove ios

cordova platform add ios

And it used work like a charm!

But, not this time!

Stumbled upon this one today! (I dont know why not earlier, anyways – here is the link!)

The key point to note over there is

Cordova-ios version 4.0 and greater does not require the cordova-plugin-whitelist plugin to be installed, however it’s configuration details apply to iOS too.

Why Cordova? Why you do this? Would it not have been helpful to keep some helpful suggestions when showing the errors, or same backward compatibility!

So the solution is :

execute the following command

 cordova plugin remove cordova-plugin-whitelist

And the build was now prepared error-free, smoothly! Feels relieved! I was done blaming Xcode for all the issues!

Please note, however if you use the same code space to prepare build for android (where this plugin is still needed), you might have to create a copy of the project and add the plugin to the android version of the project separately. (Yes we need options to add different plugins to different platforms of the same project!)

Hope this helps someone! Cheers!

Cordova and Windows 10 platform

So, things are getting updated.  And so are the platform OS and cordova versions.

Today I am going to talk about deploying Cordova applications on Windows 10 platform.

For developing for windows 10 platform,  the software requirements are:

  1. Windows 8.1 or Windows 10
  2. Visual Studio 2015 community edition
  3. Installation of node (latest version)
  4. Installation of Cordova (latest version)

1. Windows 8.1 or Windows 10 

Well we did upgrade our windows 8.1 to prevent any chances of any issues that might come due to OS dependencies. Windows 10 is good. I love the menu that gives some resemblance to the older menu styles. other requirements would be using a 64 bit machine and a good RAM capacity (we used 8gb)

2. Visual Studio 2015 community edition 

The visual studio can be downloaded from here. The download takes some time.

But the painful part is the installation. It took me more than one day to install all the components properly.

What happens while installing is most of the time the installation progress is stuck at some point for hours.

Solutions :

  • If you could close the current installation and restart again, it will restart from the same point, and by luck it might be faster in some cases
  • Sometimes, the installation does not close either. So you have to go and check the process associated with Visual Studio and you will find that there are 2 processes that are working for the installation, one having some CPU usage, and the other 0% CPU usage. Kill the one with 0% CPU usage. Sometimes, the current installation proceeds further without issue. Otherwise,
  1. close all the tasks (via Task Manager) and restart the machine.
  2. Clear all items in temp folder (%TEMP%)
  3. restart the installation process (it will resume from the last state.

However, please note: it is not suggested to kill the processes manually, because high chances are there that the installation is corrupted, and you will need to repair the existing installation before installation of further components.

Visual Studio 2015 community edition, though the installation process could have been smoother, offers a lot of benefits over 2013 version. Notably for cross platform development you can select the components needed while installing (yes there are a whole set of package helpful for Cordova development) and you dont need to install the windows10/8.1 emulator and SDK separately (out of visual studio as standalone).  They all can be downloaded and installed as a single package! And that is a relief!

3. Installation of node

This needs to be installed from here before installing Cordova as we use the node tools to download and update Cordova.

4. Installation of Cordova

We installed the latest version of Cordova ie 6.1.1

The docs are very helpful, notably Create your first Cordova App & Windows Platform Guide .


Compiling and Deployment of your app

Well the docs give the basic idea of setting up the environment and getting your project running

However, it is to be noted that in config.xml you will need to add:

<preference name="windows-target-version" value="10.0" />

Also while building the app via command line you will have error message like this:

C:\APPV1\platforms\windows\CordovaApp.Windows10.jsproj(83,9): error : The following component requires .NET Native comp
ilation which is not available when targeting ‘Windows10’ and ‘AnyCPU’. Please consider changing the targeted processor
architecture to one of the following: ‘x86, x64, ARM’ (if you are using command line this could be done by adding ‘–a
rchs’ parameter, for example: ‘cordova build windows –archs=x64’). C:\APPV1\platforms\windows\plugins\com.msopentech.w
Error: C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe: Command failed with exit code 1

Yes, this is new! In earlier builds for windows, or any platform we do not need to specify additional parameters. But when you are creating a Windows 10 build you need to specify exclusively that whether the build is going to be used on a 32 bit machine, or a 64 bit machine. That means no generic universal build can be created for Windows 10.  We are still learning about what will the best approach to create builds/installers for that. As of now, when we specify something as

cordova build windows --archs=x64

This creates the build perfectly, and the solution generated works flawlessly on VS 2015. (you might need to sign in to your developer account to prevent any sign-in/certificate issues)

But this whole process has quite a good learning curve , specially about the obstacles of getting the tools and dependencies installed and getting your first build. But at the end of the day, all worked out, and I am looking forward to more community updates on Windows 10 and cordova as this looks promising!

Stay connected!