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

Streamline appcast finding #19103

Closed
adidalal opened this issue Feb 20, 2016 · 4 comments
Closed

Streamline appcast finding #19103

adidalal opened this issue Feb 20, 2016 · 4 comments

Comments

@adidalal
Copy link
Contributor

Broken out from #19097 (comment)

Context: I've been sniffing traffic with Charles to add appcasts to Casks.


Unfortunately, little chance of being automated in the current form I'm doing things.
A tl;dr:

  • Use Charles, install & trust SSL root certificate, set SSL bypass to .
  • Download app in question
  • Click on check for updates, inspect requests in Charles
  • Try out stripped version of URL (minimum parameters), verify by wget & sublime
  • Add appcast/checkpoint to Cask with cask-repair

Thoughts on automation:
https://mitmproxy.org is a CLI, free alternative to charles

(could all be done in a VM, to keep things clean)
Type in app name
Downloads/installs cask
Could use applescript to automate "clicking" on check for updates
Spits out a few urls to try
User select URL, tests it
Feeds URL back to script, added as appcast, checkpoint automatically calculated, PR submitted, etc.

@timsutton
Copy link
Member

In many cases a Sparkle appcast can be found by looking at the value for SUFeedURL in the app bundlle's Info.plist. Some applications stow this Sparkle URL elsewhere in the app resources, but those are exceptions.

And plenty of applications don't actually use Sparkle but rather their own custom mechanisms to publish feeds of updates for the apps (Charles, for example).

@vitorgalvao
Copy link
Member

@timsutton Yes, we’re aware of all that. We even have a script to find sparkle appcasts in that manner.

This post is about the difficult to find appcasts, and how to sniff traffic to get them.

@timsutton
Copy link
Member

Ok, figured you knew all about that :)

If it helps, in the AutoPkg community, people maintain custom Python code to handle parsing all the various custom app feeds to be able to always pull the latest versions of things. This doesn't help your automation problem - it's all manually-driven - but if you're ever looking for the logic a particular application feed uses, it might be of help:

https://github.com/autopkg/

@timsutton
Copy link
Member

I guess my point was that Sparkle is the only consistent case we've seen as far as app updates go.

The feeds you may discover by automating checking for updates in other apps in almost all cases won't be appcasts, they'll be some other proprietary format (or a plist, if you're lucky).

Automating menu clicking with AppleScript or something like Sikuli may work for a native Mac app, but you'll need to check a few places. And all the applications that aren't Mac-specific (and share a bunch of cross-platform code) tend to be less consistent or use UI frameworks that AppleScript can't really talk to natively.

@miccal miccal removed the discussion label Dec 23, 2016
@adidalal adidalal mentioned this issue Dec 25, 2016
3 tasks
@Homebrew Homebrew locked and limited conversation to collaborators May 8, 2018
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

4 participants