Second Revised method for deploying StageNow profiles to a remote FTP server



This version now superceded by a revised method detailed at Third (and last!) Revised method for deploying StageNow profiles to a remote FTP server




Revised StageNow Remote Conversion Process  June 17

Ian Hatton

Zebra EMEA


  1. Create profile and test with local server. Do not use any of the Wizards during the profile creation as they may add some steps which could cause an issue when the profile is modified i.e. just use the Xpert mode to select exactly which steps are required for the profile.


     2. Create a folder on your PC and unzip the contents of the file ‘snremote new’ to this folder. Run the installer 'new_xml_remote_install.exe' to install the file processing utility


     3. Export profile via the ‘Export for StageNow’ option (using the export button available from the All Profiles screen or at the Publish screen) . Select the destination folder to be the same folder in which you have unzipped the contents of ‘snremote new’  :


     4. Open a command prompt in your root folder and type the command:


‘Prep filename’ where filename is the name of your exported profile (no extension)


This will unzip the profile contents in a sub-folder (using the same name as the profile) and generate a file named cs.txt containing the MD5 checksums for each file in the profile. It will then run new_xml_remote.exe – this utility will modify the XML to include the remote FTP server details4.


5. Chose ‘GenerateMD5’ from the menu and select the cs.txt file from the profile folder – this generates a MD5 .TXT file for each file in the profile under the appropriate sub-folder.


6.  Chose File from menu and locate the exported/unzipped XML file in the profile folder




7. Select PublicServer from the menu or go to step 8 to use your own Private FTP server. Note that files on the Public server are not secure i.e. do not post any files on this server which you do not want to be publicly available. Accept (OK) or decline (Cancel) the conditions below:


8. Public FTP server path will be confirmed as demonstrated below




9. Select PrivateServer from the menu if you want to deploy the files to your own private FTP server in which case you need to enter the required remote FTP server details I.e server name or IP address, username , password, and root path on the server – the resulting server path will be confirmed as demonstrated below:



10. After confirming the Public/Private server, select ProcessXML from the menu to process the XML. This will modify the existing FTP paths to include either the public or private server info entered in previous steps and will write the resulting modified file to the file _output.xml which will be located in the profile folder. Note that each separate file referenced in the input file will be located in a sub-folder in the output file FTP paths as per the _output.xml example below:


<?xml version="1.0" encoding="utf-8"?>



  <characteristic version="0.6" type="FileMgr">

    <parm name="FileAction" value="1" />

    <characteristic type="file-details">

      <parm name="TargetAccessMethod" value="2" />

      <parm name="TargetPathAndFileName" value="/enterprise/usr/demo-mc18-android-4.3.apk" />

      <parm name="SourceAccessMethod" value="1" />

      <parm name="SourceURI" value="ftp-p://" />




  <characteristic version="0.6" type="FileMgr">

    <parm name="FileAction" value="1" />

    <characteristic type="file-details">

      <parm name="TargetAccessMethod" value="2" />

      <parm name="TargetPathAndFileName" value="/enterprise/usr/BBUnzip.apk" />

      <parm name="SourceAccessMethod" value="1" />

      <parm name="SourceURI" value="ftp-p://" />




  <characteristic version="4.2" type="AppMgr">

<parm name="Action" value="Upgrade" />

    <parm name="APK" value="/enterprise/usr/BBUnzip.apk" />



  <characteristic version="4.2" type="AppMgr">

    <parm name="Action" value="Upgrade" />

    <parm name="APK" value="/enterprise/usr/demo-mc18-android-4.3.apk" />



  <characteristic version="4.3" type="Intent">

    <parm name="Action" value="StartActivity" />

    <parm name="ActionName" value="android.intent.action.MAIN" />

    <parm name="Package" value="com.zebra.unzip" />

    <parm name="Class" value="com.zebra.unzip.main" />







11. Press OK and return to StageNow , select the All Profiles screen and then the import profile button below:



12. Select the _output.xml file from the profile folder and press Import




13. Profile will be imported under the original name with a _1 postfix


14. Select Home to see the imported profile. Select the profile and change the name via the pen icon next to the existing name. Use a prefix to the existing name e.g. rem_ indicates this is a remotely hosted profile




15. Select Complete Profile and generate the barcodes. Do not attempt to edit the modified profile as StageNow will not support edit of a profile modified in this way. If you need to change the profile, delete the existing remote version , edit the original local version , and then follow Step 3 onwards to process


16. To deploy the files to either your FTP server or the Public server  , you can copy them in one step directly from the profile folder which has been created i.e. with a FTP client, connect to the public or private FTP server , navigate to the folder you assigned to this project and then copy all files+ sub-folders to the FTP root folder . The screenshot below shows how this works with WS_FTP i.e highlight the source on the left , select the destination root on the right and press the right arrow to transfer all files/folders :



You can check that you have the right files in right folders by comparing the contents of _output.xml with the folder+files deployed on the remote server i.e. they should match exactly or the profile will not deploy without errors. Note that FTP logon details for the Public server are as follows:




Password: rolamoto


17.  Ensure you have an internet connection on the target device, run StageNow and scan the generated barcode. If the profile fails with an error, try again in case there was a network disconnect. If failure persists , repeat step 15 to check that the files deployed on the server exactly match the content of the modified profile.


Like some guys in the previous docs concerning FTP servers conf, I have an issue with that procedure and the older ones


I'm using StageNow 2.7 on TC51 devices

Even though I followed thorougly your steps, when I scan the barcode, the device still tries to reach the Network Interface that is currently chosen in StageNow, and not the FTP server that is specified in the XML profile.

Any ideas or previous issues that could help that matter ?

Thank you

You need to check the _output.xml file to ensure that the external FTP details are in this file , in which case you can import the profile , generate the barcode and it should work. If the FTP address in _output.xml is not correct, run through the steps again or just attached your exported profile to this thread and I will check it for you?

I have the same problem.

When scanning the modified profile barcode, StageNow tries to connect to the network interface chosen in StageNow.

I'm using StageNow version

Hi Ian,

I have send you the _output.xml file so you can have a look.

Hi Ian, I have the same problem as Kasper (and the same StageNow version). FTP address in _output.xml is correct

Can you post a copy of your _output.xml file so that i can take a look ?

Can you post a copy of your _output.xml file so that i can take a look ?

I can't post file here so I've uploaded it to

Should be working now - the issue was that you had two checksum files in the FTP folder containing the OS ZIP file so the StageNow client was getting the wrong checksum . I deleted the spurious file and it seems to work now if you can retest on your side also and confirm?

I'm stumped.  My _output.xml looks ok.  It has the correct Source URI pointing to my external FTP folder: the apk file in the subfolder.  After I've imported the _output.xml file into StageNow I can view the location and it is the external FTP.  I generate the barcode and scan with StageNow on the TC70 and it fails with the log showing the IP address of my workstation and the message that file was not found.  Cannot understand where it is getting info to still use the workstation's StageNow FTP server rather than the external FTP server.  I can email you the _output.xml file, but I'd rather not post it here.

The error I continue to receive on the StageNow client on my Zebra device is that it cannot connect to which is my PC's IP address where I run StageNow.  That IP address must still be encoded in the 2D barcode for the remote version of the profile.  Yet, when I look at the _output.xml that I imported and even when I Expand/View look at the step in the new remote profile it shows the external FTP URI.

There is only 1 checksum file in the _copy folder on the external FTP server.

Edited: Thanks I'll know not to create the original profile with the Wizard next time!

Following the instructions helped a lot, but the following file needs to be changed as well to enable remote FTP server:

External Satging Server (misspelled in the file )

C:\Program Files (x86)\Symbol Technologies\Staging_Solution\Symbol.StageNow.V2Client.exe.config

Also when configuring the profile at first using Xpert Mode, you need to select the 'Config' tab in order to get it to work, but that creates multiple barcodes for every option that is added. When selecting 'Deploy' tab there is only one barcode created for multiple options, but the device is unable to find file/folder on FTP. Is there a way to get this to work when selecting 'Deploy' tab?

Problem solved:


I'm having the same issues as above. The barcode continues to point to my PC's IP address, even though my ProfileName.xml file says otherwise. I have followed this thread and the revised thread and neither work for me. Please help...


I would like to use the 'Deploy' tab, because the 'Config' tab creates multiple barcodes. Anyone any idea? Thanks.


I have the same problem: after using the patch my XML file is containing the private ftp URL, but after scanning the 2D barcode the terminal is still connecting to  local server.

1. How can I verify the content of the barcode?

2. Where do I see the third and last method as a valid link - because the above one fails...

Many thanks in advance!