Kaju self-updater talk (v.2.x)

Eventually, but I don’t think it’s a priority at this point.

Kaju is working perfectly in the Mac version of my app, but I recently started working on the Windows version and it is failing. It seems that the connection is working to the server and getting/parsing the JSON file there is working, but the update window never opens. At one point I forced open the window at an early stage of processing and everything seemed to work. If I force it open later (for instance adding ‘Self.Visible = True’ at the end of the ChooseUpdate method then the app hangs there.

Has anyone had similar trouble on Windows?

After a day of fruitlessly experimenting (including building a new test app), I tried reverting to 2018 Build 3 (from build 4) and everything now works. I guess I’ll try reinstalling Build 4 at some point to make sure the issue isn’t due to corruption of the install but for now at least I can build my app.

OK I’m actually not quite out of the woods. The update process works until the app is installed to Program Files. I’m guessing this is a permissions issue?

It could be, but I know Kaju checks for permissions to write before starting the update check.

Just checked and indeed it’s failing the permission check. Is there a way to elevate permissions to enable overwriting the program file in Windows 10? I’ve been using Mac and UNIX machines for years but unfortunately I’m not much of an expert on Windows. It looks like by default Windows 10 always requires authentication to write to either of the Program Files directories. Am I the only one running into this issue?

Probably not, but no, there is no way to elevate permissions at this time.

Got it. One possible (easy but unsafe) solution is to have the installer change the permissions of the install directory to allow write access. The only other solution I can think of is to have the updater download an installer instead of the application files themselves. I may give that a shot.

The second is a possibility, yes, and probably easier than elevating permissions.

I have been playing around an am trying to use Kaju to update a linux app running on raspberry pi. I am having trouble figuring out what problem I am running in. I disabled the check for debugbuild to make sure I can run it with the debugger and run in the issue that if I step through updater.Execute method, all conditions are met and it shows there is an update available. But if I don’t put in breakpoints and just let it run, it does not find the update. So I suspect there is a comms timeout setting somewhere which needs to be adjusted. I see a hard code “5” which seems to be the timeout, but am not confident enough to just start changing it. Would it make sense to change all hard coded numbers “5” with a constant and then tune it so it works?

The windows version has no issues.

I guess you can try it, but that doesn’t sound like it’d be the issue.

I’ve been having some issues with users actually getting data back from Kaju. I put an update out and no one gets notified. I try it in both OS X and Windows 7 and it works fine. I get notified. I am trying to figure out why it works for me but not others. I was wondering if maybe it’s because I’m not using HTTPS. So I’m trying that. Kaju reads back nothing when using HTTPS. I have verified entering the URL in my browser and I get the data JSON file no problem. All my certificates are there and correct on the website. So I’m really stumped why Kaju doesn’t work for most people and why I can’t get it to work with HTTPS. I must be doing something wrong but for the life of me, I can’t figure out where…

Older versions of Kaju had a small problem that http wasn’t forwarded to https. This broke my updater. There was a setting?

I can see it’s making the HTTPS call. But I’m wondering if something isn’t right since it’s using the older HTTP socket. It should be upgraded to use URLConnection and I’m thinking of doing that but want to make sure that’s absolutely necessary.

I’m just wondering why even when not using https why it doesn’t seem to work for people other than me either.

AllowRedirect?

I don’t follow. Nothing is being redirected.

From http to https.

I’m on my phone and can discuss more later.

The Get method your HTTPSSocket, has a SetSecure method it calls. I’m using “https:” in the URL. So I don’t see where the redirection issue would come from. I see your GetRedirectAddress to get the new URL. I’ll try that but I’m not sure what difference it would make…

Yeah, just tried it. No difference. The GetRedirectAddress gives me the exact same URL I had before.

The explanation of my problem was too short. I had a http call, then the website was updated to https. I was missing the redirect call so my updater went into nirvana.

Which version of Kaju are you using? Sync or async? Can you give us the location of your json file for testing? Or make a dummy file and give us the url for this file.

Hi Beatrix,

I am using a direct https address call so redirect makes no difference. Here is the file:

https://www.justaddsoftware.net/downloads/kaju/MediaSwitcher/UpdateInformation

or

http://www.justaddsoftware.net/downloads/kaju/MediaSwitcher/UpdateInformation

I understand I am not using the .json filename extension. I have that file in place as well.

I’m happy to whip up a little app that people could try to view the file using Kaju.

Looks like my version is 2.0. I just downloaded the most recent version on Github but I haven’t added it to my app yet.