Software Archive
Read-only legacy content
17060 Discussions

iOS build fails using WKWebView

Giorgio_B_1
Beginner
2,258 Views

Good morning,

i tried on XDK 1621 + cordova 3.5 and XDK 1995 + cordova 4.1.3 following this guide 

https://software.intel.com/en-us/xdk/docs/building-cordova-ios-app-with-wkwebview

but the build fails :( what am i doing wrong?

Thanks

0 Kudos
9 Replies
John_H_Intel2
Employee
2,258 Views

The author changed the plugin recently and looks like it has issues with dependencies. I tried to build with it and looking at the logs I found this (not sure if its helpful or not).

Fetching plugin "cordova-plugin-webserver" via plugin registry

npm http GET http://registry.cordova.io/cordova-plugin-webserver

npm http 404 http://registry.cordova.io/cordova-plugin-webserver

Failed to install 'com.telerik.plugins.wkwebview':Error: 404 Not Found: cordova-plugin-webserver

    at RegClient.<anonymous> (/Developer/cordova/4.1.2/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js:268:14)

    at Request.self.callback (/Developer/cordova/4.1.2/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/node_modules/request/index.js:148:22)

    at Request.EventEmitter.emit (events.js:98:17)

    at Request.<anonymous> (/Developer/cordova/4.1.2/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/node_modules/request/index.js:876:14)

    at Request.EventEmitter.emit (events.js:117:20)

    at IncomingMessage.<anonymous> (/Developer/cordova/4.1.2/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/node_modules/request/index.js:827:12)

    at IncomingMessage.EventEmitter.emit (events.js:117:20)

    at _stream_readable.js:919:16

    at process._tickCallback (node.js:419:13)

Error: 404 Not Found: cordova-plugin-webserver

    at RegClient.<anonymous> (/Developer/cordova/4.1.2/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js:268:14)

    at Request.self.callback (/Developer/cordova/4.1.2/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/node_modules/request/index.js:148:22)

    at Request.EventEmitter.emit (events.js:98:17)

    at Request.<anonymous> (/Developer/cordova/4.1.2/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/node_modules/request/index.js:876:14)

    at Request.EventEmitter.emit (events.js:117:20)

    at IncomingMessage.<anonymous> (/Developer/cordova/4.1.2/node_modules/cordova/node_modules/cordova-lib/node_modules/npm/node_modules/request/index.js:827:12)

    at IncomingMessage.EventEmitter.emit (events.js:117:20)

    at _stream_readable.js:919:16

    at process._tickCallback (node.js:419:13)

 

 

Looking more I found

<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" id="com.telerik.plugins.wkwebview" version="0.4.0">

<dependency id="cordova-plugin-webserver" />
Expecting NPM and CLI 5.0
That version of the plugin
So the dependency is not found (a guess, but it’s not on cordova io.. if it was, it would be cordova.plugin.webserver

 

Its possible that a previous version of this plugin will work, but you will need to try it out.

0 Kudos
Giorgio_B_1
Beginner
2,258 Views

How can i embed a previous version of the plugin, say 0.3.8 ? The tutorial above does not explain it.

Thanks,

0 Kudos
John_H_Intel2
Employee
2,258 Views

You can either download the previous version of the plugin and install it locally or when you specify the .git url when adding the plugin, add the version you want to include such as this:

https://github.com/katzer/cordova-plugin-local-notifications.git@0.7.7

0 Kudos
PaulF_IntelCorp
Employee
2,258 Views

Minor correction, use this notation to do what John is recommending:

https://github.com/katzer/cordova-plugin-local-notifications.git#0.7.7

You get the number from the "branch: master" pulldown, under the list of "tags" or from the "releases" list. The string after the hash (#) must match exactly what is in the repo. If the tag in the repo says "a-Brand-new-version" then you would do it like this:

https://github.com/katzer/cordova-plugin-local-notifications.git#a-Brand-new-version

0 Kudos
Giorgio_B_1
Beginner
2,258 Views

building continue to fail, no matter which combination of versions i use :(

0 Kudos
PaulF_IntelCorp
Employee
2,258 Views

I've asked one of my colleagues who has worked with that plugin to reply to this thread.

0 Kudos
Rakshith_K_Intel
Employee
2,258 Views

I just tried adding with version 0.3.8, it works, add the plugin with this git url:

https://github.com/Telerik-Verified-Plugins/WKWebView.git#0.3.8

0 Kudos
Giorgio_B_1
Beginner
2,258 Views

Thank you a lot, using version 0.3.8 of WKWebView and version 4.1.2 of cordova i was able to build (i'm using XDK 1621).

0.3.8 is the last version without the "cordova-plugin-webserver" dependency, but the strange thing is that looking at the latest "cordova-plugin-webserver" (2.3.1) "plugin.xml" the plugin seems compatible with cordova 4.0.0+ so i can't figure out why using WKWebView 3.9.0 or 4.0.0 the build fails.

Other two questions:

- XDK 1621 seems to not support cordova 5.0.0+, am i wrong? Do more recent XDK versions support it?

- Is there an easy way to know which versions of XDK support wihch versions of cordova? The only method i found is set a version, try to build and see if it was really built with the requested version.

Thanks.

0 Kudos
PaulF_IntelCorp
Employee
2,258 Views

@giorio -- the problem with the later versions of that plugin is the addition in the plugin ID of the dependent plugin requirement, this line in the plugin.xml file:

<dependency id="cordova-plugin-webserver" />

That dependency ID is only recognized by CLI 5+, does not work with CLI 4. This is a major PIA that the Apache Cordova project caused when they decided to change the ID format in order to be consistent with NPM names. Note that the old naming scheme would have worked with NPM, but they felt that it would be better to change the ID naming conventions, thinking it would be a minor thing. Unfortunately, it is turning into a major problem for this very reason.

We are aware of this problem and our doing our best to help make the transition smooth, but this is not an easy one to make transparent, so it's going to cause troubles for lots of developers as these plugin IDs get updated by the plugin authors.

Your solution is a good one, during this transition period, and I'm glad to see that is worked!

0 Kudos
Reply