![]() |
|||
| Version www.capesoft.com Updated Friday 31 August 2007 |
|||
How
It Works
Uploading
Downloading
About
Digital Certificates
| Introduction |
|||
|
|
Safe Update allows you to upgrade your program over an
internet connection securely and automatically.
Safe Update is just the template you
need when you want
your applications to update themselves automatically, either from the web or a local
server. It has been designed to be quick and easy and requires no extra coding
for most applications.
When your application is updated you need to make sure
that the update being downloaded is the genuine article and not a
malicious file instead. To achieve this Safe Update includes security in the form
of digital signatures appended to both your Update File and the Version
file.
Safe Update is a versatile product that can be used in any
application that requires downloading any
signed or unsigned files from local or remote sites.
Safe Update supports Clarion 5.5 and later, both ABC and Legacy.
Clarion 5 is not supported.
|
||
Downloading
The Demo application
that ships with SafeUpdate shows you how SafeUpdate works and includes everything
you need to get started. It is a good idea to compile the Demo.app file and run
the Demo program to get a feel for how safeupdate works.
This Jump Start shows you how to add Safe Update to your application in order to be able to download updates.
Adding Safe Update to your Application.
To add the Safe Update template to your program, add the following to your application's Global Extensions:
NOTE: For all the following steps, use single-quotes around the parameters.
Steps for Downloading
Finished!
You've now finished part 1 of 2 (the download)! When your application runs it will check for any updates. However, there are presently no updates because you haven't created or uploaded them. Never mind: Safe Update can do it all for you. Proceed to the Uploading Jumpstart to complete the next step.
For those that care: Reading the Progammers Reference Introduction and its associated paragraphs will help you understand the technical workings of Safe Update.
UploadingWe've done all the hard work for you in creating an uploader (SafeUp) for your applications. All you have to do is get a digital certificate and learn to use SafeUp and you're done! SafeUp is included with Safe Update as one of the examples and also as an executable. You can find the SafeUpdate Uploader in the SafeUpdate folder in your Start menu under Clarion Accessories, or in your Clarion/3rdparty/bin directory.
You can create your own custom uploader application, either by customising the SafeUp application (which ships as an example with SafeUpdate and can be found in your Clarion/3rdparty/Examples/SafeUpdate directory) or you could write one yourself (templates are provided to do all the hard work for you). See section entitled Creating your own Uploader for more information.
This Jump Start shows you how to get your own digital certificate.
SafeUpdate ships with and example certificate that uses the email address safetester@capesoft.com, which you can use for testing. You should get your own certificate for signing your applications.
A Digital Certificate is needed in order to sign your update file. One of the easier ways of acquiring one is to download it from Thawte. In the Thawte home page, select the Products menu item and choose Free Personal e-mail certificates. Click on the Click Here link in the first paragraph and follow the prompts.
There are some technical questions that you will be asked that are quite obscure. In the second half of the process, when an e-mail has been sent to you from Thawte, you will be asked what format your certificate should be. Choose "X.509 format". The type of certificate must be for MS Internet Explorer, Outlook and Outlook Express.
When you have finished this section, install your certificate
by clicking on the Install Your Cert button. This will put it in the
Personal certificate store located in the Current User folder.
Finished!
You should now have your digital certificate installed. For instructions on
using SafeUp, click
here.
1) I want to add updating to my application
2) I want to check for updates on startup
3) I want to check for updates every couple of days
4) I want the user to be able to check for updates
manually
5) I want to use Safe Update to sign and upload my
application update file
6) I want to use Safe Update in a Multi-DLL
application
7) My application gets sent to the system tray on
shutdown. How can Safe Update shut it down properly?
8) Stopping SafeDownload when the application closes
9) How to get your application to find the version embedded inside an XML file
10) I want to generate a version for my application
externally
11) I want to create my own Uploader.
For more information, please see the FAQ section.
1) I want to add updating to my application
You will need to follow the Download JumpStart.
Some useful information on how Safe Update works can be found in the Introduction
in the Reference Manual.
2) I want to check for updates on startup
This option is already enabled by default when you add Safe Update to your
application. However, you must make sure the AutoUpdate local extension has been added to your application's main window.
3) I want to check for updates every couple of days
Go to the Global Options Tab and make sure
Enable Auto Update is checked. Set Check Every x Days to the
interval between update checks. If this is a client application downloading from
a server, you can randomize the update time between, say, 01:00 and 03:00. Also make sure the
AutoUpdate local extension has been added to your application's main window.
4) I want the user to be able to check for
updates manually
Add a control to your window, such as a button or menu item, labelled, for
example, 'Check for Updates'. Go to the control's Accepted embed and add the SafeDownload
- Start Safe download (new thread) embed.
5) I want to use Safe Update to sign
and upload my application update file
Go to the Global Options Tab and make sure the
Program Version is a literal string (or is being read from a cwVersionRes
file). Now compile your application.
As you do this, the XML version file for your application will be automatically
generated. Now make your update file as you usually do, using your favourite install-generator,
e.g. Wise or Setup Builder.
Finally, you will need to use SAFEUP to sign and upload your update file. SafeUp ships with SafeUpdate and allows you to add as many program to the database of as you like, so you can simply select the application that you want to sign and upload and press one button to do it all for you.
6) I want to use Safe Update in a multi-DLL
application
Normally, you would put
SafeDownload in the EXE and leave it out of the DLLs. This requires the
following options:
If you want to generate a root DLL that will allow any program that uses it to update automatically, do the following:
7) My application gets sent to the system tray on
shutdown. How can Safe Update shut it down properly?
You'll have to add your own code in this case. You would probably set a
global flag that would tell your application to shut down completely. Add your
code to the event:SUshutdown event in your main window. You will need to add the AutoUpdate
extension to your main window first.
8) Stopping SafeDownload when the application
closes
The way to ensure that SafeDownload has closed is to add the AutoUpdate
extension to the application's main procedure.
9) How to get your application to find the version embedded inside an XML
version file
See the SafeDownload Procedure documentation on
how to do this.
10) I want to generate a name and version for
my application externally
Safe Update can use the version file created by the cwVersionRes - Version
Resource global template. The
relevant lines from this file are (for example):
PRODUCTVERSION 1,2,3,4
VALUE "PRODUCTNAME", "My
Application\0"
11) Creating your own Uploader
This section shows you how to add Safe Update to your application if you want to write code to sign and upload files.
Adding Safe Update to your Uploader Application.
To add the Safe Update template to your program, add the following to your application's Global Extensions:
Some global parameters will need to be changed in order to get Safe Update working, but only after the next steps.
NOTE: For all the following steps, use single-quotes around the parameters if they are literal strings. If they are variables, leave the single quotes off.
Steps for Uploading
Filling in the Global Parameters
You now need to fill in the options in the Global
Extension Options tab. Enter the program name and version of your uploader
application. All the other options can be left alone.
Finished!
You're now finished setting up Safe Update for uploading. Reading the Introduction and its associated paragraphs will help
you understand the workings of Safe Update better.
The SafeDownload Control Template
The
SafeAutoUpdate Control Template
The SafeUpload Control Template
The SendFTP Control Template
See the Jump Start for information on how to add the Global Extension. The global extension allows you to set the default listbox style for your application.
NOTE: Most of the options shown in the Global Options Tab correspond to user-settable options using the SetOption method in the global SUpdate class.
Global General Tab
Global Options Tab
Global Multi-DLL Tab
Global Save & Load Tab
Global Classes Tab
|
|
Disable All Safe
Update features |
||
|
|
Enable
downloading Use external file for version External File Program Version If this string is a literal, it is stored in the global equate SafeUpdate:AppVersion. Program Name Enable Auto-update (SuOpt:AutoUpdate) Check every X days
(SuOpt:UpdateFreq) Randomize update time (SuOpt:RandomStart
and SuOpt:RandomEnd) Note that the random download time will change for every update unless the start and end times are the same. Note also that randomizing the update time is only meaningful if Check Every X Days is non-zero. Enable Signing and Uploading Display Errors Log Errors (SuOpt:LogErrors) |
||
| Templates Loaded
|
|||
|
|
|||
| Templates not yet loaded.
|
|||
| |
This
is part of a Multi-DLL program See the FAQ for more details. This is the Root DLL This option is only activated if the Multi-DLL checkbox is ticked. NOTE: the Options, Load & Save and Classes tabs are not available if this section of the application is a DLL. |
||
|
|
Save Settings Which Storage Method? Save in Program's INI INI File Name
Registry Folder (SuOpt:RegistryFolder) If
Other is checked, the registry entry must not be blank. This entry may be a variable or a literal string, as shown in the figure. |
||
|
Save settings in an INI file |
|||
|
|
|||
|
Save settings in the registry |
|||
|
|
Object name: Class name:
|
||
Downloading
You will not need to get a certificate if you are only downloading files: the Update File will already have all the necessary certificate information embedded. However, if you want to check the the serial number of the certificate, then reading the following paragraph may be useful.
How to Find the Certificate's Serial Number
SafeUpdate ships with Certificates.msc (Start->Program Files->Clarion Accessories->SafeUpdate->Certificates
Manager).
This will launch the Microsoft Certificates Manager (you could also
open the file CERTMGR.MSC, which is found in the Windows\system32 directory).
This will display a list of all the certificate stores on your computer. The certificate you require should be in the 'Current User/Personal' store. Go to the Details tab of the certificate and highlight the Serial Number field. The serial number will appear in the lower listbox. You can now cut and paste the serial number into the template, remembering to enclose it in single quotes.
The template makes provision for three different formats of serial number. Examples are:
The 2nd format is useful if the certificate is viewed in an Internet browser.
Demo
Client/Server Demo
Certificate Information
These examples are in your \Clarion\3rdParty\Examples\SafeUpdate directory.
This is intended to simulate how the uploading and downloading operates. You won't need an FTP site to run the example, since all the files are stored on your PC. However, you will need a Digital Certificate (you can use the certificate that ships with SafeUpdate for testing). See the Upload JumpStart for information on how to get your own certificate for signing your programs.
Take a bit of time to have a look at the Safe Update options that have been set in the DEMO application.
Inside the demo directory there are two sub-directories:
There are two applications in this demo. They have been kept as simple as possible (no fancy graphics).
Follow these instructions to get the demo working. With version 1.13 we have greatly simplified this, allowing you to easily get the hang of how SafeUpdate works.
And that's it! The program downloads and installs a new version, then runs the new version. When it checks for a new version and does the download the signature of the file is checked to ensure that the download is valid.
Typically, what you would do to update your program would be to create an EXE file using Wise or another commercial install generator. To keep things simple, this was not done in this demo. This means that the download options in the demo are slightly different to the options you would set if you had used an install generator.
The SafeDownload options for DEMO.EXE are shown in the screenshot below.
|
|
SafeDownload options for Demo |
In the above screenshot you will notice that the SafeDownload options have the Run Separate Installer option checked (in the Download tab). If you had used an install generator you would check the Run Update After Download option instead. Storing the update file would also be optional.
The client/server demo works the same way as the first demo, but it's twice as much effort to get it running. Safe Update allows your server application to download the client software and store it for the client to upgrade itself later on.
It is recommended that you go through the first demo before you attempt this one, as it is very similar and a little easier.
The directories are exactly the same as the first demo:
There are four applications in this demo. They have been kept as simple as possible (no fancy graphics).
Follow these instructions to get the demo working. It looks a bit complex at first, but it should become clear what's going on. Have your digital certificate details handy. Steps 1 to 4 are preliminary and only need to be performed once.
To create further updates, repeat steps 5 to 10 with different version numbers.
This is a small application that lets you read the certificate information in any file, even those that have not specifically been signed by Safe Update. See the screen shot below for an example.
This extension adds code that allows your application to:
You will normally add it to the first window that opens, e.g. Main(). This extension cannot be added to source or report procedures.
|
|
The extension that must be added to your application's main procedure when using Safe Update.
|
||
|
|
If you would like the user to be able to check for version updates manually, this is where you specify the control for doing that. You may also specify no controls (default).
|
||
These templates are at the heart of Safe Update. You will need to load one of these templates into your application in order to download your files. See the JumpStart for more information.
To load the Download template into your application, open the Application | Template Utility menu option and select the ImportSafeUpdateDownload utility (ABC or Legacy), as shown in the picture below. Doing this will create the windows SafeDownload and SafeAutoUpdate, with a Safe Update control template associated with each one.

The SafeDownload Control Template
The
SafeAutoUpdate Control Template
The SafeUpload Control Template
The SendFTP Control Template
The Update Process for client/server
applications
The SafeDownload Procedure
This allows you to download files from a remote site using HTTP, or a local site. To add this template, follow the steps shown in the Template Utility section.
Setting the options for this template can be done for a number of configurations:
NOTES:
SafeDownload General Tab
SafeDownload Files Tab
SafeDownload Downloading Tab
SafeDownload Verification Tab
SafeDownload Client/Server Tab
The update process for client/server applications
|
The general tab for the SafeDownload template control. |
||
|
Update File (SuOpt:MsgdownFilename) XML version file (SuOpt:XMLdownFileName) XML version tag (obsolete) (SuOpt:XMLVersionTag) |
|
|
|
Note: the two screenshots in this table show the boolean variables as constants and the second as variables. By clicking on a Var button, the corresponding field will change between a check box and a expression field. You'll want to do this if you're setting the options with a runtime variable - but most of the time you'd simply use the checkboxes (i.e. template settings). Ask before getting new
version (SuOpt:AskUser) Run update after download (SuOpt:RunFileAfterDownload) Run Separate Installer (SuOpt:RunInstaller) Installer Program (SuOpt:Installer) Ask before running update (SuOpt:AskBeforeInstall) Store file after
download (SuOpt:StoreFileAfterDownload) Keep signature attached (SuOpt:KeepSignature) Get location from user (SuOpt:UserSaveLocation) Storage location (SuOpt:StoreLocation) Turn caching off (SuOpt:CacheOff) Hide the file path details while downloading |
|
|
|
Tab shown with no Var buttons checked. |
|||
|
|||
|
Tab shown with all Var buttons checked. |
|||
|
Note: the two screenshots in this table show the boolean variables as constants and as variables.
Verify the file signatures (SuOpt:VerifyFiles) Must be signed by (SuOpt:MustBeSignedBy) Cert. Authority (SuOpt:CertProviderDown) Cert. Serial Number (SuOpt:SerialNumber) Errors to check (SuOpt:CertFailures) Note: it is not recommended that the No Issuer Certificate option is checked unless the user must have a certificate by the issuer of your certificate present on their machine. Action if signature fails (SuOpt:NotSignedOption) |
|
|
|
Tab shown with no Var buttons checked. |
|||
|
|||
|
Tab shown with all Var buttons checked. |
|||
|
This is a server application Tick this option if:
Note that this can be a variable, for use in, e.g, peer-to-peer applications. See the description below this table for what happens and what options must be set. If you aren't sure what client/server is all about, just ignore this tab. Update file Version file Install path |
||
If the 'This is a server application' option is checked in the Client/Server Tab, the following steps must be performed.
Server application options
Client application options
Client/Server update process
SafeDownload (string pHideWindow, string pXMLfile, string pVerify)
Description:
Download and run an Update File, first checking the XML version file to see
if the update is newer than the existing application.
SafeDownload can also be used to find the version embedded in any XML file. This might be used in a client / server application. For example, when a client accesses the server, the server would examine the version of the client somehow. If the client were not up to date, the server would then send a message telling the client to request an update. When finding the version of a non-default XML file, the Update File is not downloaded.
To retrieve the version of an XML file (default or non-default
When SafeDownload closes, the XML file version is placed in the SuOpt:AcquiredVersion parameter. An event:SUactivatewindow event is also sent to the window that started SafeDownload. You can read the version by embedding code at this point. This embed point will already be present if the window has the SafeAutoUpdate template added. Otherwise you will have to add it yourself. See the example below.
NOTE: Only one copy of SafeDownload can be run at one time.
Parameters:
pHideWindow: Set this to '1' to hide the window. Set it to '0' to show
the window.
Notice that it is a string parameter.
pXMLfile: This is used when you want to find the version embedded in an XML file that is not the default XML file. If you are finding the version of the default XML file, this parameter can be set to an empty string.
pVerify: Set to '0' to disable signature verification and '1' to enable it. Notice that it is a string parameter. This parameter is used in conjunction with pXMLfile. If pXMLfile is an empty string, this parameter has no effect but must be included anyway.
Return value: none.
Example (ABC):
In TakeAccepted()
....
!-- Start
SafeDownload.
of ?ButtonDownload
start
(SafeDownload, '1',
'www.mycompany.com/ClientApp.xml',
'1')
In TakeWindowEvent()
....
!-- SafeDownload ended.
of event:SUactivatewindow
MyVersion = gSUpdate.GetOption (SuOpt:AcquireVersion)
|
Searching for the XML version file. |
|
|
|
Asking to download the Update File. |
||
|
Asking to install the Install the Update File. |
||
If Auto-Update has been enabled, SafeAutoUpdate checks for updates as often as you have specified. SafeAutoUpdate runs in its own thread and is terminated when the main application procedure shuts down.
This extension can be left out if auto-updating is not required. To add this template, follow the steps shown in the Template Utility section.
|
The general tab for the SafeAutoUpdate template control. Show the AutoUpdate Window Show the SafeDownload Window |
||
SafeAutoUpdate ScreenShot

Start Safe Download
Save
all the INI File Settings
Get
an INI File Setting
Save an INI File Setting
This embed calls SafeDownload. It can be attached to the Accepted event of a button or a menu item, for example, in order to start the download process. Choose the embed as shown in the picture below.

If downloading is enabled, the following dialog box will appear:

In the event of your wanting to embed this at the start of your program, check the button. If you want to show the update only some of the time, make the option variable by clicking on the Var button. The window will change to look like the figure below. Enter your own variable in the space provided.

If downloading has been disabled in the Global Extension, the following dialog box will appear:

This saves all the Safe Update settings, as listed in Saved Settings. You would add this code when the user changes one or more of the saveable settings. Select this from the Embeds window.

Read an INI file or registry setting. This is actually done indirectly, from the global SUpdate class. The code embed asks for the setting name and the variable that it will be stored in, as shown in the figure below.
Save an INI file or registry setting. The setting is stored in the global SUpdate class and also in the INI file or registry. The code embed asks for the setting name and the value that will be stored, as shown in the figure below.

![]()
UploadingYou will not need to get a certificate if you are only downloading files. The Update File will already have all the necessary certificate information embedded. If this applies to you, then you can safely skip this section.
How do I get a Certificate?
The Upload Jump Start section has information on how to do this.
Certificate Requirements
The certificate needs to:

How to Find the Certificate's Serial Number
If you have a copy of the certificate, simply open the file. Alternatively, you can view the certificate information in Internet Explorer: In your Tools - Internet Options - Content, click the Certificates button and you will see a list of certificates. Double click on the correct one to give you the details for that certificate.
Otherwise you will need to open the file CERTMGR.MSC. This is found in the Windows\system32 directory. The certificate you require should be in the 'Current User/Personal' store. Go to the Details tab of the certificate and highlight the Serial Number field. The serial number will appear in the lower listbox. You can now cut and paste the serial number into the template, remembering to enclose it in single quotes.
The template makes provision for three different formats of serial number. Examples are:
The 2nd format is useful if the certificate is viewed in an Internet browser.
How do I find the Issuer Name?
Click on the Certification Path tab, in which you will see a tree of certificates. Select the item that is second from the bottom of the tree and click the View Certificate button. Now click on the Details tab and select the Issuer field. The CN field (in the lower list box) is the issuer name. See the screenshot below for an example.
This is a simple uploader program that allows you to generate XML files, as well as sign and upload your update files. SAFEUP mirrors the options found in the SafeUpload local extension: therefore all the options that are used in SAFEUP are exactly the ones used in the SafeUpload local extension. The SAFEUP screenshot is shown below.
SAFEUP is a complete uploader and can be used without any modifications. It comes with source code so you can see 'under the hood'. The binary SAFEUP.EXE is distributed with Safe Update and can be found in the Clarion\3rdParty\bin directory.
You only need one Uploader for all your SafeUpdated programs. You can enter a record for each one in the list using the details that you entered into the Download Jumpstart as follows:
| Update File | The name of your compiled exe (and local path if different from the SafeUploader's path) |
| XML version file | This should match the XML version file setting in the SafeUpdateDownloadControls template of your application. The difference is that the Template setting will include an HTTP path. |
| Update File version | This should match the version number in the SafeUpdate global extension template on the options tab of your application. |
| Signed by | Matches the Must be signed by in the Verify tab of the SafeUpdateDownloadControls control template of your application. |
| Certificate Authority | Matches the Cert. Authority in the Verify tab of the SafeUpdateDownloadControls control template of your application. |
| Serial Number | Matches the Cert. Serial in the Verify tab of the SafeUpdateDownloadControls control template of your application. |
| FTP Server, User, Password | Contain the FTP server details with which to upload the files to. |
| Update File Directory | Contains the directory in the FTP server where the signed Update File must be FTPed. |
| XML File Directory | Contains the directory where the XML file must be uploaded to on the FTP server. |
| Unsigned Update Directory | This is the directory where the unsigned file will be uploaded to. The first time the program runs it should be an unsigned file - although you may have an alternative method of transport (in which case you can leave this blank, and the unsigned file won't be uploaded). |
Command Line Mode and Configuration Files
SAFEUP can also be used from the command line using a configuration file. A
README file which shows the format of the
configuration file is supplied with SAFEUP. A configuration file example is also shown at the end of this section. When used
with a configuration file, SAFEUP runs hidden.
There are some constraints in the syntax of the config file:
These are the things you are allowed to do in the file:
If there is an error in one of the lines of the configuration file, the line is ignored. However, processing of the configuration file will continue until the end of the file.
Example Configuration File
An example configuration file is shown in the figure below. You can copy the
text in this figure to create your own configuration file. The top four
parameters are task options.
The colour of the other parameters show their dependencies on the task options. The black parameters depend on more than one task option.
|
UpdateFile
= Update.exe XMLVersionFile = update.xml UpdateFileVersion = 1.00 CertificateAuthority = Thawte or Verisign etc SerialNumber = 01 02 03 SignedBy = me@mycompany.com FTPPassword = MyPassword FTPServer = ftp.mycompany.com FTPUser = MyUserName UnsignedDirectory = ftp/public UpdateFileDirectory = ftp/signed XMLFileDirectory = utilities |
|
An example configuration file for SafeUp |
The SAFEUP Command Line
Run the application with the following parameters:
uploader [-E] <configfile>
where the parameters are defined as follows:
| Parameter | Description |
| -E | Insert this optional parameter if you want to show the error messages. This is useful when debugging your configuration file. This option is not case sensitive. |
| configfile | The name of the configuration file. |
Note: The demo and pre-compiled versions of SAFEUP include CapeSoft File Manager 2 (FM2) in order to track the changes of the dictionary file. FM2 was not included in the examples because it is not needed with Safe Update. If you have FM2 or FM3, feel free to add it to the SAFEUP example.
The Programmer's Guide has more useful information on how to use SAFEUP for signing and uploading.
These templates are at the heart of Safe Update. You will need to load one of these templates into your application in order to upload your files. See the JumpStart for more information.
To load the Upload template into your application, open the Application | Template Utility menu option and select the ImportSafeUpdateUpload utility (ABC or Legacy), as shown in the picture below. Doing this will create the windows SafeUpload and SendFTP, with a Safe Update control template associated with each one.

The SafeUpload Control Template
The SendFTP Control Template
This allows you to upload a signed Update File and XML version file to either a remote site using FTP, or local site. To add this template, follow the steps shown in the Template Utility section.
To hide the update process, go to the SendFTP window extension and tick the Hide option.
NOTE:
SafeUpload General Tab
SafeUpload Files Tab
SafeUpload Signature Tab
SafeUpload Uploading Tab
|
The general tab for the SafeUpload template control. | ||
|
Note: the two screenshots in this table show the boolean variables as constants and as variables.
Update File
(SuOpt:UpdateUpFileName) Automatically generate XML (SuOpt:CreateVersionFile) Version (SuOpt:Version) XML version tag (SuOpt:XMLVersionTag) |
|
|
|
Tab shown with no Var buttons checked. |
|||
|
|||
|
Tab shown with all Var buttons checked. |
|||
|
Note: the two screenshots in this table show the boolean variables as constants and as variables.
Sign the files (SuOpt:SignFiles) Signed by (SuOpt:SignedBy) Certificate Provider (SuOpt:CertProviderUp) Cert. Serial Number (SuOpt:SerialNumber) Warning: the certificate's serial number will change if you re-install your certificate so beware! Append to file name (SuOpt:AppendToUpdate) |
|
|
|
Tab shown with no Var buttons checked. |
|||
|
|||
|
Tab shown with all Var buttons checked. |
|||
|
Note: the two screenshots in this table show the boolean variables as constants and as variables.
Upload the files (SuOpt:UploadFiles) Use external app to upload (SuOpt:UploadUsingOther) Command line (SuOpt:UploadProg) Server (SuOpt:FTPserver) User (SuOpt:FTPuser) Password (SuOpt:FTPpassword) Update file directory (SuOpt:FTPMsgDirectory) XML file directory (SuOpt:FTPXmlDirectory) Unsigned Update Dir (SuOpt:FTPUnsignedDirectory) |
|
|
|
Tab shown with no Var buttons checked. |
|||
|
|||
|
Tab shown with all Var buttons checked. |
|||
When the user buys and downloads your application for the first time they would have no means of removing a signature attached to the setup file. Removing the signature is sometimes necessary because setup files created with some programs, such as Wise, perform self-checks to see if they've been modified. A signature is obviously a modification, so the setup file will not run.
It is not always the case that self-checking is performed, however. For example, Setup Builder allows you to turn checking off. In this case a separate unsigned file would not be necessary.
In summary, you will need to upload an unsigned version if the setup file generator doesn't allow you to disable the self-check feature. This is the case with Wise, but not Setup Builder.
If you h