Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sparkle scheduled update not working #507

Closed
cipik opened this issue Mar 30, 2015 · 4 comments
Closed

Sparkle scheduled update not working #507

cipik opened this issue Mar 30, 2015 · 4 comments

Comments

@cipik
Copy link

cipik commented Mar 30, 2015

We have an application containing Sparkle framework, which is already released in the field, and it seems that fails to make the the scheduled check for updates for some reasons.
The application has LSUIElement=YES.
Here are other values from Info.plist:
SUAllowsAutomaticUpdates=YES
SUEnableAutomaticChecks=YES
SUFeedURL="..."
SUPublicDSAKey="..."
Sparkle version that reproduces this problem is 1.5 Beta (git)
OSes that encounter this issue: 10.9, 10.10. That may be other too, but I have not tested it.
Note that making manually check for updates by calling checkForUpdates: method, works as expected.

Things that I have played with/I am aware of:
Sparkle uses NSTimer to schedule an update, which might be delayed if computer sleeps.
From Sparkle wiki and code it seems that the default check period is 24 hours, if none is specified.
I tried to set the SULastCheckTime sometime in the past(from code, and not manually) and after that start the application and wait for it to make the check.
Modified SUScheduledCheckInterval to 3600(minimum accepted value for release version).

There were several scenarios that I've noticed:

  1. SULastCheckTime never updated for several days in a row(not being able to reproduce). I thought that this might have been related to NSTimer and the fact that during these days, the computer may have been in sleep mode. However this does not apply all the time, since even after longer period of time(several days), the SULastCheckTime still does not get updated.
  2. SULastCheckTime gets updated but update dialog did not appear. I noticed that this may be related to the fact that the app is not active. If I would go to a dialog/status menu item which I know it calls activateIgnoringOtherApps: (among other operations), the update dialog immediately appears. However, I do not have a confirmation that this is a focus issue. Even so, I cannot rely on this workaround, as I want my users to be notified by any means that a new update is available.

Does anyone encountered any issues with scheduled updates?( note that I looked over #332, but it does not apply to me).
Is there anything I am doing wrong?
Is there anything on the Sparkle feed that I can modify so I can force display the update dialog even if the app is not active?(#2 ffrom above)

Thanks for your answers!
Ciprian

@grahammiln
Copy link
Contributor

Are you able to contact users and ask them to manually update or trigger the update check?

With regard to notifying users that an update is available, consider using a NSUserNotification. Notifications will be displayed, even if your application is not front-most or visible.

I have successfully used a LSUIElement based application with Sparkle. However, the application did not display any interface. Instead when an update was available, a second application was launched to notify the user.

Be aware that the latest release of Sparkle is v1.9. Updating to the latest Sparkle will fix many bugs.

Others will be along to help debug the SULastCheckTime behaviour.

@cipik
Copy link
Author

cipik commented Mar 30, 2015

Hi Graham,

Actually I have updated to the latest Sparkle version in a newly released version. However the existing users out there did not updated yet to this new app version. (I have some kind of metrics to check that).

@grahammiln
Copy link
Contributor

Have zero existing users updated?

Are you able to measure the web traffic to your appcast.xml file? Do you have access to your web server's log files?

Can you determine the difference between users who are being prompted to update but choose not to?

@cipik
Copy link
Author

cipik commented Mar 31, 2015

I have no way to measure traffic, or to differentiate between users who are being prompted to update but choose not to.

The metrics that I am referring to is a users table which gets updated bases on user activity. Based on that I am being able to see that are lots of users which did not update for 1 week, but are active. There may be users who dismiss the update, but I doubt that all of them did so. (since I noticed the SULastCheckTime issues above).
Also, based on this I noticed that there are users that updated, but I am not able to figure out if the update dialog came from a periodic check.

So my conclusion remains the same. For some reasons the scheduled check for updates fails to work properly.

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

No branches or pull requests

3 participants