Skip to content
This repository has been archived by the owner on Oct 12, 2022. It is now read-only.

downloadProgress callback no longer being called on cordova-plugin-code-push v2.0.0 #661

Open
rex-iotum opened this issue Oct 30, 2020 · 10 comments

Comments

@rex-iotum
Copy link

rex-iotum commented Oct 30, 2020

Description

The downloadProgress callback is no longer being called since the switch to cordova-plugin-advanced-http.
The plugin source code calling downloadProgress has been removed from RemotePackage.prototype.download.

The docs still reference as if downloadProgress is still going to be called.
https://github.com/microsoft/cordova-plugin-code-push#codepushsync

Reproduction

  • Call codepush.sync with the documented codePush.sync(syncCallback?, syncOptions?, downloadProgress?, syncErrback?);
  • Attach a debugger to the downloadProgress callback function
  • Verify that the debugger is never triggered

Additional Information

  • cordova-plugin-code-push version: v2.0.0
  • List of installed plugins: cordova-plugin-code-push + dependencies
  • Cordova version: v6.1.1
  • iOS/Android/Windows version: iOS 14.0.1
  • Does this reproduce on a debug build or release build?: Both
  • Does this reproduce on a simulator, or only on a physical device?: Physical, most likely both
@ecorona
Copy link

ecorona commented Nov 5, 2020

I'm getting the same here.

I found RemotePackage.prototype.download on bin/www/remotePackage.js method is receiving downloadProgress but it's not being called.

@trampi
Copy link

trampi commented Dec 4, 2020

Same symptoms here. The downloadProgress-callback-argument of codePush.sync is never called.

@ankitjainOfficial
Copy link

Same here. Also, I see the app being downloaded and installed. But, stuck with white screen after completion. Dashboard reports rollback for the update, after that. Is that related to this?

@trampi
Copy link

trampi commented Dec 15, 2020

@ankitjainOfficial if your error is only reproducible in iOS, then you might want to check that no file of your app contains utf8 multibyte characters. Seems like the iOS cordova push fails the integrity check of the update due to how the hash is calculated and the handling of filename encoding.

If you just use ASCII characters for your filenames you can rule this problem out.

#660 (comment)

@ankitjainOfficial
Copy link

@trampi Thanks for the comment. It's just a normal ionic/angular build. So, I didn't find any multibyte characters.

@trampi
Copy link

trampi commented Dec 15, 2020

@ankitjainOfficial, ahh, I see. We have a angular / cordova application as well (no ionic), but had a static image asset named "weiß.jpg" (german for "white") -> the "ß"-Umlaut in the filename of the static asset lead to errors after installing code push updates.

The error reported through the console on iOS-devices was "The update contents failed the data integrity check". We could not reproduce this error on Android devices, only iOS-devices / simulators were affected.

Maybe you could open a new ticket with the error output of codepush in the dev console? That should help finding the root cause.

All the best,
trampi

@cankemik
Copy link

@rex-iotum did you have any progress on this? i'm having the same issue.

Dependency set is like below

"@angular/animations": "~10.0.8",
"@angular/cdk": "^10.0.2",
"@angular/common": "~10.0.8",
"@angular/compiler": "~10.0.8",
"@angular/core": "~10.0.8",
"@angular/fire": "^6.0.2",
"@angular/forms": "~10.0.8",
"@angular/localize": "^10.0.8",
"@angular/platform-browser": "~10.0.8",
"@angular/platform-browser-dynamic": "~10.0.8",
"@angular/router": "~10.0.8",
"@ionic-native/badge": "^5.30.0",
"@ionic-native/barcode-scanner": "^5.28.0",
"@ionic-native/battery-status": "^5.28.0",
"@ionic-native/camera": "^5.28.0",
"@ionic-native/camera-preview": "^5.28.0",
"@ionic-native/code-push": "^5.30.0",
"@ionic-native/core": "^5.0.0",
"@ionic-native/device": "^5.28.0",
"@ionic-native/device-motion": "^5.28.0",
"@ionic-native/device-orientation": "^5.28.0",
"@ionic-native/document-scanner": "^5.28.0",
"@ionic-native/fcm": "^5.30.0",
"@ionic-native/geolocation": "^5.28.0",
"@ionic-native/globalization": "^5.28.0",
"@ionic-native/image-picker": "^5.28.0",
"@ionic-native/in-app-browser": "^5.30.0",
"@ionic-native/insomnia": "^5.28.0",
"@ionic-native/ionic-webview": "^5.28.0",
"@ionic-native/keyboard": "^5.30.0",
"@ionic-native/local-notifications": "^5.28.0",
"@ionic-native/network": "^5.28.0",
"@ionic-native/network-interface": "^5.28.0",
"@ionic-native/service-discovery": "^5.28.0",
"@ionic-native/speechkit": "^5.28.0",
"@ionic-native/splash-screen": "^5.0.0",
"@ionic-native/status-bar": "^5.0.0",
"@ionic-native/text-to-speech": "^5.28.0",
"@ionic-native/three-dee-touch": "^5.28.0",
"@ionic-native/toast": "^5.28.0",
"@ionic-native/zeroconf": "^5.28.0",
"@ionic/angular": "^5.0.0",
"@ng-bootstrap/ng-bootstrap": "^7.0.0",
"@pazznetwork/ngx-chat": "^0.10.2",
"@xmpp/client": "^0.9.2",
"ag-grid-angular": "^23.2.1",
"ag-grid-community": "^23.2.1",
"chart.js": "^2.9.3",
"chartjs-plugin-annotation": "^0.5.7",
"chartjs-plugin-datalabels": "^0.7.0",
"chartjs-plugin-zoom": "^0.7.7",
"cordova-plugin-device": "^2.0.2",
"cordova-plugin-ionic-keyboard": "^2.2.0",
"cordova-plugin-ionic-webview": "^4.2.1",
"cordova-plugin-splashscreen": "^5.0.2",
"cordova-plugin-statusbar": "^2.4.2",
"cordova-plugin-whitelist": "^1.3.3",
"core-js": "^3.6.5",
"crypto-js": "^4.0.0",
"file-saver": "^2.0.2",
"firebase": "^7.21.0",
"hammerjs": "^2.0.8",
"icon-font-generator": "^2.1.10",
"ismobilejs": "^1.1.1",
"jquery": "^3.5.1",
"jquery-mask-plugin": "^1.14.16",
"jshashes": "^1.0.8",
"lodash-es": "^4.17.15",
"moment": "^2.27.0",
"ng-drag-drop": "^5.0.0",
"ng-dynamic-component": "^7.0.1-no-barrels.1",
"ng-multiselect-dropdown": "0.2.10",
"ng2-charts": "^2.3.2",
"ngx-color-picker": "^10.0.1",
"ngx-device-detector": "^1.4.6",
"ngx-joyride": "^2.3.1",
"rxjs": "~6.6.2",
"swipejs": "^2.2.18",
"tslib": "^2.0.0",
"zone.js": "~0.10.3"

@ludufre
Copy link

ludufre commented Dec 28, 2020

As far as I know. the cordova-plugin-advanced-http used to download don't have support for download progress.

@Coder7777
Copy link

Any solution now? the downloadProgress callback still can no be fire.

@Coder7777
Copy link

Description

The downloadProgress callback is no longer being called since the switch to cordova-plugin-advanced-http.
The plugin source code calling downloadProgress has been removed from RemotePackage.prototype.download.

The docs still reference as if downloadProgress is still going to be called.
https://github.com/microsoft/cordova-plugin-code-push#codepushsync

Reproduction

  • Call codepush.sync with the documented codePush.sync(syncCallback?, syncOptions?, downloadProgress?, syncErrback?);
  • Attach a debugger to the downloadProgress callback function
  • Verify that the debugger is never triggered

Additional Information

  • cordova-plugin-code-push version: v2.0.0
  • List of installed plugins: cordova-plugin-code-push + dependencies
  • Cordova version: v6.1.1
  • iOS/Android/Windows version: iOS 14.0.1
  • Does this reproduce on a debug build or release build?: Both
  • Does this reproduce on a simulator, or only on a physical device?: Physical, most likely both

You can try v1.12.0, I downgrade to this version, the downloadProgress callback function working well.

Good luck for you.

https://www.npmjs.com/package/cordova-plugin-code-push/v/1.12.0

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants