0
votes

In our project containing the iOS and Android environments,
Suddenly out of no where our Android apps fail when a Direct Update occurs. iOS still works fine.

Is there a way to see what address the direct update function is trying to use to update itself?
Right now all we get is:

E/WLDroidGap(23185): Failed downloading application update file.

UPDATE:: The environment is https --> firewall --> netscaler --> worklight server

I did have the network people create a http endpoint in the netscaler, and this works. So something with the https is giving direct update a problem.

We have noticed that the init call comes back with a response.

success: /*-secure-
    D/AppName  (  682): {"gadgetProps":{"directUpdate":{"checksum":328818244,"updateSize":1346819,"availableSkins":["default"]},"ENVIRONMENT":"android"},"userPrefs":{},"WL-Authentication-Success":{"wl_deviceNoProvisioningRealm":{"userId":"device","attributes":{"mobileClientData":"com.worklight.core.auth.impl.MobileClientData@3ff51267"},"isUserAuthenticated":1,"displayName":"device"},"wl_antiXSRFRealm":{"userId":"antiXSRF","attributes":{"savedInstanceId":"l057614d2gsf26emf8lr6kndn1"},"isUserAuthenticated":1,"displayName":"antiXSRF"}},"userInfo":{"wl_deviceNoProvisioningRealm":{"userId":"device","attributes":{"mobileClientData":"com.worklight.core.auth.impl.MobileClientData@3ff51267"},"isUserAuthenticated":1,"displayName":"device"},"wl_anonymousUserRealm":{"userId":"0738882f-8b37-4609-acd5-dc2333438692","attributes":{},"isUserAuthenticated":1,"displayName":"0738882f-8b37-4609-acd5-dc2333438692"},"WorklightConsole":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"wl_deviceAutoProvisioningRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"wl_authenticityRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"wl_antiXSRFRealm":{"userId":"antiXSRF","attributes":{"savedInstanceId":"l057614d2gsf26emf8lr6kndn1"},"isUserAuthenticated":1,"displayName":"antiXSRF"},"wl_remoteDisableRealm":{"userId":"NullLoginModule","attributes":{},"isUserAuthenticated":1,"displayName":"NullLoginModule"},"SampleAppRealm":{"userId":null,"attributes":{},"isUserAuthenticated":0,"displayName":null},"myserver":{"userId":"0738882f-8b37-4609-acd5-dc2333438692","attributes":{},"isUserAuthenticated":1,"displayName":"0738882f-8b37-4609-acd5-dc2333438692"}}}*/

But the call for direct update fails::

D/        (  682): HostConnection::get() New Host Connection established 0x2a632910, tid 695
D/dalvikvm(  682): GC_CONCURRENT freed 313K, 5% free 8477K/8903K, paused 18ms+35ms, total 133ms
E/WLDroidGap(  682): Failed downloading application update file.

Its hard to diagnose since it seems that IBM catches the IOException and gives a canned message

2

2 Answers

1
votes

Our problem turned out to be that the certificate on the server changed, and the whole chain was not imported to the server. Since it was from a certificate authority that was not trusted by android we needed the whole chain(IOS did trust this authority that is why it did not show the problem).

The reason that the init works but the update did not is: init is done by the webview, if android manifest xml has debug on, the web view allows for untrusted certs.

0
votes

Is this in Production or during Development?

  • The Direct Update destination is hard-coded; it cannot be changed and it is the server that the app connects to.
  • What happens after you clear the app cache?
  • Is there still enough storage space in the device?