Sorry Kem I can't work out how to use the Async socket...
Here's a screenshot of the error I see in the IDE (in case this helps).
I am trying to implement Tem's version of Kaju for a Windows app. I am using the latest 2.x from Github. I am using High Sierra to compile with Xojo 2018 release 2.
Cannot get past this error:
"The update packet signature marker was incorrect"
I put the output of the Xojo compile in the root of a ZIP file and not the directory for the app created by the compiler.
I assume Julia's directory structure is correct above and the JSON file goes in the top level and various versions can go in sub-directories as her screen shot above. I am putting the correct URL in the Windows program on where to find the ZIP file in one of the sub-directories but how does Kaju know where to find the JSON file?
I think I am finding the ZIP file OK because if I rename it on the server to a "bad" name I get a fairly quick error but if the name is correct it takes a while for the error to appear.
I can get the admin program to calculate the hash from the URL although I have a cert on the server the admin program won't recognize the URL as an httpS.
Is this error based on the hash or "security token" in the JSON file?
Any help would be appreciated.
I am getting close to just putting a way to download an InnoSetup installer but some time in the future I may also have a Mac version.
The ReadMe, despite having a seemingly great amount of detail and even a section called "Step by Step", nonetheless presumes a lot of pre-knowledge about how Kaju works on the part of the user. In this case, the info on that URL says only "you must also set... the UpdateURL where it will get its update information", which is pretty ambiguous.
I have actually printed the ReadMe and looked at it carefully but as Julia says I think it assumes some knowledge of Kaju. Before I saw this post I did not have any version sub-directories but when I saw Julia's structure it was clear I did not fully understand everything I needed to know.
I have experimented for a while before posting here. Hopefully this will get me past the "signature marker" error.
Good progress but a few more issues. One cosmetic and one fatal.
After sorting out the URL and a few other issues I am now presented with the Update Available window when I request the update.
There is a label near the top that says:
"You have version 1.1. Would you like to install version 1.2.0?
My running version is 1.1.0 but the "bug version" portion (third number from the left) is missing. I assume that the trailing dot is a period for the sentence. I think I see maybe why this happens in the Kaju code that creates the display version but I don't want to fix it if there is going to be a new release anytime soon. I have NOT tried it with something other than zero for the "bug version".
I got to the point of downloading the ZIP and Clicking INSTALL. All seemed to go OK until it tried to relaunch the EXE and it was not found. There was an open CMD window but nothing in it. When I closed the message box the CMD window closed. I searched the computer and the EXE file is NOT on the machine BUT it is in the ZIP file when I manually download it and look.
I looked at the Update Log file and there were no errors.
I tried a couple of times and managed to catch a Windows dialog box that I think was the decompressing of the ZIP with a down arrow to show the details. I clicked the downarrow and I thought I saw the EXE file name briefly appear but no errors then the dialog closed.
On one of the test, but before clicking the "Quit and Install" button, I looked and the new EXE was found in a folder called "<mypath>- decompressed". That directory appeared to be the whole structure with all of the supporting files.
After the failure message all of the supporting files are installed EXCEPT the EXE file is missing.
For I have no idea what reason Kaju stopped working today, I always use the same updater app, same files same workflow. I build one version on Xojo2018R3 I pushed the update, worked well. then today I had to push another update , so like 1 week interval, same things same steps , the app does not work anymore .
For the first debugging it seems that the app gets downloaded on the Temp folder, then it restarts but it stop on replacing the app with the new version. If I open the app from the temp folder it works well and no errors so somehow the copy script or whatever was there stopped working .
any idea on this ?
Do you set the UpdateInitiater property to nil in
the App.Destructor App.Close?
From the Read Me:
Important: Kaju does its magic by launching a command-line script when the UpdateInitiater gets set to Nil, which should happen when the app quits. Unfortunately, that's not always true so you should force the issue by inserting App.UpdateInitiater = Nil into your App.Close event.
Well good to know that . so far I noticed and I guess it's weird that if I have more than one alpha or beta releases will not work, once I put final release it will work so in a way it ignores the stages, but not sure, I will put the nil and see what happens.
I'm trying to update to the latest version of Kaju.
What is the security token doing?
The update file now makes a security token:
// Add a security token // dim rawKey as string = Crypto.GenerateRandomBytes( 8 ) dim encodedKey as string = EncodeBase64( rawKey, 0 ) thisVersionData.Value( Kaju.kNameSecurityToken ) = encodedKey
But the check is kinda strange:
if thisElement.Lookup( Kaju.kNameSecurityToken, "" ) = "" then raise new KajuException( KajuLocale.kMissingReason + " security token", CurrentMethodName ) end if
There is only a check if the security token is there. Well, the token itself is only random bytes. Does this make sense?