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

Update Apps from within Latest #9

Closed
2 of 4 tasks
mangerlahn opened this issue Dec 29, 2017 · 10 comments
Closed
2 of 4 tasks

Update Apps from within Latest #9

mangerlahn opened this issue Dec 29, 2017 · 10 comments
Assignees
Milestone

Comments

@mangerlahn
Copy link
Owner

mangerlahn commented Dec 29, 2017

Apps should be updated from within Latest without opening the app or the Mac App Store.
This has to work for

  • Mac App Store Apps
  • Sparkle Apps
  • System Updates
  • Homebrew Cask
@mangerlahn mangerlahn changed the title Update MAS Apps from within Latest Update Apps from within Latest Aug 19, 2018
@Wdavery
Copy link

Wdavery commented Aug 27, 2018

Does this project help at all? https://github.com/welcoMattic/kymsu
Specifically looking at mas.sh, implementing mas definitely seems like a good option.

https://github.com/mas-cli/mas

@mangerlahn
Copy link
Owner Author

I have seen mas before and got really excited! I just looked though the code and recognised, that mas uses the native code that the Mac App Store uses itself. This is fantastic since I basically get first hand code (from Apple) that quite surely works.

So mas is basically a thin layer above Apples own code to work from a cli.

There are different scenarios we could go after:
• Require the user to install mas (I won't do that since I hope non-tech people will use latest and thats to complicated)
• Bundle mas with Latest and call it as a second program or
• Just use the code from mas and integrate that directly into Latest.

The last option seems to be the best one, I just have to look at the licence from mas to see if thats allowed :)

@mangerlahn mangerlahn added this to the Version 0.5 milestone Aug 27, 2018
@mangerlahn
Copy link
Owner Author

So mas is under MIT licence, which means it can be used here without problems. Now we only need a mechanism for Sparkle apps..

@Wdavery
Copy link

Wdavery commented Aug 27, 2018 via email

@Wdavery
Copy link

Wdavery commented Aug 27, 2018 via email

@mangerlahn
Copy link
Owner Author

I do have that URL, but Sparkle does some security checks, some apps ship with installers or provide delta updates. So I definitely don't want to hijack that process.

I currently have two ideas here, but am not sure if any of them work. That takes some time which I hopefully have in the next weeks.

• Open the app to update (kinda) in the background and trigger the update myself through some system event stuff.
• Modify the sparkle framework so that I can update these apps directly from Latest.

@mangerlahn
Copy link
Owner Author

Just double checked, mas does not show the system updates, so we have to fall back to softwareupdate for that.

@core-code
Copy link

note that the 'ui-separation-and-xpc' branch of Sparkle contains a cli-tool that can be used to update Sparkle apps

@mangerlahn mangerlahn modified the milestones: Version 0.5, Version 0.6, 0.5 Jun 15, 2019
This was referenced Jun 25, 2019
@mangerlahn mangerlahn self-assigned this Jun 25, 2019
@mangerlahn
Copy link
Owner Author

mangerlahn commented Jun 25, 2019

So I have been digging around in the mas source code. They basically exposed some headers of the private framework that does the updating for the Mac App Store. I basically can do the same and therefore can avoid bundling mas itself.

Same goes for Sparkle, I have the framework embedded anyway, so I should (hopefully) be able to call their update code directly. If that does not work we can still fall back to the cli-tool mentioned by @core-code 😊

Homebrew-Cask and especially softwareupdate are stretch goals for now. Latest is a nice viewer, but the updating experience is rather disappointing. I should really get going on this 😅

@mangerlahn
Copy link
Owner Author

I will close this one since version 0.6 adds support for updating within apps. Adding support for system updates and homebrew cask are tracked with #8 and #45 respectively.

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

No branches or pull requests

3 participants