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

Trying… not working.
I’ll try splitting it up

part 1: ======================

“STARTED ON 2018-07-23 13:11:58”
“Copying items to backup C:\Users\kyle\Desktop\MyAppToolKit\MyAppToolKit.exe-20180723131158”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\Appearance Pak.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\Browser Plugin.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\cef.pak”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\cefsubproc.exe”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\cef_100_percent.pak”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\cef_200_percent.pak”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\cef_extensions.pak”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\chrome.pak”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\Crypto.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\d3dcompiler_43.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\d3dcompiler_47.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\devtools_resources.pak”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\icudt.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\icudtl.dat”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\Internet Encodings.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\libcef.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\libEGL.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\libGLESv2.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\locales”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\msvcp140.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit
atives_blob.bin”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\RegEx.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\Shell.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\snapshot_blob.bin”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\SSLSocket.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\vccorlib140.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\vcruntime140.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\widevinecdmadapter.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Looking for item C:\Users\kyle\Desktop\MyAppToolKit\XojoGUIFramework32.dll”
“…not found as file, trying as directory”
“…NOT FOUND!”
“Moving the executable MyAppToolKit.exe to backup”
1 file(s) moved.
“…confirmed”
“All items moved to backup”

Part 2 =====================

“Copying files from C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs to folder C:\Users\kyle\Desktop\MyAppToolKit”
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\Appearance Pak.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\Browser Plugin.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\cef.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\cefsubproc.exe
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\cef_100_percent.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\cef_200_percent.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\cef_extensions.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\chrome.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\Crypto.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\d3dcompiler_43.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\d3dcompiler_47.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\devtools_resources.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\icudt.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\icudtl.dat
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\Internet Encodings.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\libcef.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\libEGL.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\libGLESv2.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\msvcp140.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs
atives_blob.bin
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\RegEx.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\Shell.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\snapshot_blob.bin
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\SSLSocket.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\vccorlib140.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\vcruntime140.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\widevinecdmadapter.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\XojoGUIFramework32.dll
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\am.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\ar.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\bg.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\bn.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\ca.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\cs.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\da.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\de.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\el.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\en-GB.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\en-US.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\es-419.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\es.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\et.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\fa.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\fi.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\fil.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\fr.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\gu.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\he.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\hi.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\hr.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\hu.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\id.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\it.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\ja.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\kn.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\ko.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\lt.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\lv.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\ml.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\mr.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\ms.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales
b.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales
l.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\pl.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\pt-BR.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\pt-PT.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\ro.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\ru.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\sk.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\sl.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\sr.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\sv.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\sw.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\ta.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\te.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\th.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\tr.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\uk.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\vi.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\zh-CN.pak
C:\Users\kyle\Desktop\MyAppToolKit\MyApp Tool Kit- decompressed\MyAppToolKit Libs\locales\zh-TW.pak
81 File(s) copied
“…confirmed”
“Removing backup”
“Removing decompressed folder”
“Launching new app”
“Removing temp folder”

When you compressed the updated app, did you compress the contents of the folder or the parent folder? It has to be latter.

MyApp
  MyApp.exe
  MyApp Resources
  etc.

In that example, you’d compress MyApp, not the contents of MyApp.

OK I think I got it. My last test worked.

Now, just to verify… the RSA key should never change, no matter the version? is this correct? OR do I need to add in a new RSA for every incremental version beyond the original. (as long as I use the same admin file for future versions)

so,
V1.0.0 = original RSA
v1.2.0 = new RSA

or

V1.0.0 = original RSA
v1.2.0 = original RSA

The RSA public/private key combo is unique to each Kaju admin file and will remain the same for the life of that file. Refer to the project README on how to handle that file and when to start a new one.

Thanks

I just tested the the updates on 2 other windows machines, and upon hitting “check for update” the entire app simply closes. Where would one find a log file to begin trouble shooting this? Works fine on the dev machine tho.

thanks

EDIT:
Its working now. I think google drive’s “zipping” technique busted it. I zipped it meself and uploaded it. Works as intended.

Hello!

i just got your testUpdate-App running., but …

it says “update available”, downloads and installs but when i want to try it a second time it says “aborted no write permission”

What am i doing wrong?

if i copy the updated app to another location then there is a error “RSA Signature could not be verified”…

sorry my mistake, i didn’t realised that the public rsa key is unique for each kaju project, it’s working now!!

FWW Kaju does not seem to work correct when your app is Notarised. I think it prevents the use of the scripts.
Didn’t look into detail right now …

As I’m not on Mojave, and won’t be for a while, I’m going to have to rely on someone who is to look into this.

Ì don’t think this is fixable. Notarised apps cannot handle files via (apple)scripts.

Trying Kaju seriously for the first time now, and unclear on a few points. Firstly, is this a reasonable server directory structure?

Secondly, I’m confused as to the sequence of events: I have to first load my binaries into the Admin app in order to get an RSA key, but the RSA key has to go back into the Xojo source and then I need to recompile with the RSA key and upload again? Won’t that change the hash values?

Am I supposed to do anything with the hash values?

When there’s an update, exactly what needs to be changed in the Xojo source? Do I need to generate and compile with a new RSA key for each release? I’m guessing yes, since the updater URL always points to the same JASON file.

When I try the Preview pulldown in the Admin app, I get this “Missing security token” error:

This is after compiling with the RSA key in the Xojo source and re-uploading the files. Despite getting this error on preview, Kaju still exported an updater file, but I haven’t tested it yet.

No, once you create the admin file (which you should save in a safe place), you can get the RSA key from it and that key doesn’t not change. Put the key into your app as illustrated by the test project and described in the Read Me and then compile. All the Update info needs is to know the hash of the zip file associated with each version.

I don’t know why it would be giving you that error in Preview.

Updater’s working now, and I’m starting to get the hang of it, thanks :slight_smile:

Hi Kem,

First let me say I love Kaju and for the most part it works great, except for one thing…

I am using v2.1 and I have the same issue as Julia Truchsess above, where which ever option I choose in the Preview pulldown in the Admin App, I always get the “Missing security token” error. It’s probably something I’m doing wrong although I’ve been through the documentation and I can’t see what might be missing. I am on MacOS 10.14 Mojave, incase you think that might be the cause?

Thanks

Unfortunately, I am not on Mojave so I can’t test that aspect of it, and I don’t know why Preview would be doing that. Perhaps @Julia Truchsess figured that out?

Hmmm, I wonder, could it be because my files are not being accessed via https?

I see that is also the case with @Julia Truchsess in her screenshot above…

Thanks

I haven’t merged the develop branch into master yet, but you should try that out with the new ExecuteAsync function. That uses the new framework HTTP socket and might resolve all sorts of problems.

OK Kem, thanks for your reply, I’ll give it a go and let you know… :slight_smile: