microsoft / cordova-plugin-code-push

Cordova plugin for CodePush
http://appcenter.ms
Other
644 stars 335 forks source link

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

Open rex-iotum opened 4 years ago

rex-iotum commented 4 years ago

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

Additional Information

ecorona commented 4 years ago

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 commented 3 years ago

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

ankitjainOfficial commented 3 years ago

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 commented 3 years ago

@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.

https://github.com/microsoft/cordova-plugin-code-push/issues/660#issuecomment-740023296

ankitjainOfficial commented 3 years ago

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

trampi commented 3 years ago

@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 commented 3 years ago

@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 commented 3 years ago

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

Coder7777 commented 3 years ago

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

Coder7777 commented 3 years ago

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