Canon uniFLOW Smart Client for Mac: Creating a Useable PKG Installer

andymason
New Contributor III

Hi everyone, I. HATE. PRINTERS. That being said, we have to work with them. 

3af7553308d347c884ef24bddd7dd837-sticker.png

and... Canon does not make it easy. 

Here is what I was able to find out from several places online, in order to get this "installer" to actually work. So let's jump on to our Macs and get this over with.

0b1036059dc4fb0b83f753597318ed5f-sticker.png

Downloading the "Installer"

1. Log into your Uniflow Online (web)

2. Start Printing (Side Bar)

3. Install Printer Driver > Click [Download macOS printer driver] 

UniFlowOnlineDownload.jpg

  • Navigate to Download Folder
  • Open SmartClientMac.iso > Open SmartClientMac Volume > 
  • Notice here you only have 1 file. But actually there are 4. 3 are hidden.

Screenshot 2023-05-05 at 11.55.58 AM.png

  • On your Keyboard us the show hidden files shortcut: Command+Shift+.(Period)

Screenshot 2023-05-05 at 11.56.02 AM.png

Getting Files in the Right Location

  • You will now see 3 other files. We only need the SmartClientForMac.pkg and tenantcfg.plist files.
  • Next, Go to Finder > Go > Go to Folder (Shift+Command+G)

GoToFolder.gif

  • Enter 'private/tmp'
  • Next create a new folder called 'uniflowclient'
  • Which is now located in private/tmp/uniflowclient

Screenshot 2023-05-05 at 12.16.12 PM.png

  •  Drag the two files (SmartClientForMac.pkg and tenantcfg.plist) from the mounted SmartClientMac to the private/tmp/uniflowclient folder

DragandDrop.gif

  • Close the SmartClientMac window.

Using Composer to Create the PKG

  • Next Open Composer
  • Drag the uniflowclient folder from finder into composer

Screenshot 2023-05-05 at 12.18.59 PM.png

  • Click on uniflowclient under Sources, navigate private > temp > uniflowclient to confirm files are there

Next click the ⬇️ next to Sources

Right click on Scripts > Select [Add Shell Script] > Select [postinstall]

Next replace all text with the following:

#!/bin/sh
## postinstall

sudo installer -pkg /tmp/uniflowclient/SmartClientforMac.pkg -target /

exit 0 ## Success
exit 1 ## Failure

Screenshot 2023-05-05 at 12.24.50 PM.png

Now click [Build as PKG] in the composer toolbar. Save it to your Mac.

Boom. Chef's Kiss, You're PKG is ready to take out of the oven.

23d8c400eea4f1dd90e4f7e9d02efa19-sticker.png

Now you can upload it to Jamf Pro, then put into a Policy to push out to your Macs. 

Hope this helps you out!

6515ce4d4f164eea801b8bf289d2377f-sticker.png

38 REPLIES 38

bwoods
Valued Contributor

This presentation is beautiful. 

nhernandez
New Contributor II

amazing!, thank you. 

andymason
New Contributor III

One more thing...

You might want to add the Uniflow Client to the employee's startup items via a Config Profile. 

1. Click on Computers

2. Click on Configuration Profiles > New > Create a Name for it, and Scope.

3. Click Login Items

4. Click [+ Add ] Items, then add the path to the App. Make sure to put the "/" at the end other wise it will not work.

/Applications/uniFLOW SmartClient.app/

5. Click Save.

Screenshot 2023-05-07 at 2.23.58 PM.png

jorrig
New Contributor III

@andymason great guide, just tried it out, works like a charm 😀.

I got an issue that appears randomly from time to time with the uniFLOW Smart Client not starting at our Macs, it happens as I said, randomly among our 60 Macs here at work. 

It does not help adding it to Login Items, have you or anyone else reading this seen it before?

Mostly it just works after starting the app manually, but sometimes I have to run the uninstall script and reinstall it afterwards.

I have spoken to NT-Ware that says it is a developer issue and no solution yet, I have to wait for the developers to get this issue corrected.

SCCM
Contributor III

Did you actually get get the uninstall and reinstall working? I found that after it uninstalled for a upgrade the login window wouldnt come back up for users

jorrig
New Contributor III

Have not had any issues with uninstall script and the installation after.

I have a policy published in Self Service for running the uninstall script, then, since I have not had this solution in place, I manually logged into my uniFLOW tenant, downloaded the iso and manually installed it once again, always working for me.

SCCM
Contributor III

I previously done it the same way as above (policy to install)  and i found it sometimes opened the app and somtimes didnt. The results were inconsistant on our machines. All the files installed correctly it just looks like the install scripts randomly didnt work correctly, you could uninstall and reinstall the ap pwithout sucess, however after a OS upgrade the software would reinstall / work on some devices

jorrig
New Contributor III

Well, my biggest issue is with the app not starting randomly, making the user frustrated when the arrive at the printer just to find the Secure Print queue empty, making them walk back to the computer, start uniFLOW Smart Client manually and then heading back to the printer. 9 out of 10 times the app starts as expected after manually starting it from Finder.

kgeerts
New Contributor II

We have also have this issue randomly at certain location. I believe this is related to another issue we have where the uniFLOW Smartclient, does not get connected to the cloud tenant randomly. According to NT-ware this has something to do with the below setting in the configuration of the uniFLOW Smartclient. Unchecking this option should 'fix' the issue. Only... the option in not available for Smartclient on macOS. NT-ware says they will pick this up with the highest priority...

Greenshot 2023-06-22 15.08.56.png

patrickmullen
New Contributor II

Incredible work.  You saved me a TON of discovery on my own.

Jorelwilkins
New Contributor

@jorrig Did you find the solution to the issue? I currently going thru the same issue that you were going thru with the install. But one differences is that when I go to the pkg after the installed "completed" to rerun the client, it would take multiple times. The only real solution I found that worked was doing the uninstall and reinstall but there be a host of different problem along the way. Like having to reset the printing setting to get the printer to map right on a machine or two. 

Any thoughts would be appreciated. 

jorrig
New Contributor III

Have not heard anything about my issue with the smartclient not starting randomly.

I have not had that many new macs installed after I published this pkg into Jamf.

What exactly are you having trouble with now @Jorelwilkins 

Issue with it installing properly. It take multiple installs for it to run successfully.

jorrig
New Contributor III

Sorry, but that issue have I never had, always installing properly.

kgeerts
New Contributor II

Hi @jorrig, following NT-WARE this should be fixed in a new version of the Smartclient. So the steps would be:

  1. Generate a new macOS Smartclient from the uniFLOW console and download the PKG. This should be version 2023.3.
  2. Package the PKG again like described above.
  3. Upload the PKG to Jamf Pro.
  4. Uninstall the Smartclient like described in here.
  5. Create a new policy to install the new custom PKG.
    You can also include an uninstall script in the policy for your new Smartclient. This prior to the install step. You can find the inspiration in /etc/smartclient/uninstall-smartclient.bash. You would 
    have to  check if the 'SmartClient' process is still running and if it is kill it with the 'killall SmartClient' command.

Have not elaborated this out myself yet. Is something for next week. Just back from JNUC :-) 

jorrig
New Contributor III

Thanks for the info!

Leaving for some vacation, playing some golf in Spain, so I will try to do this in 2 weeks ;-)

If you get around to try this out, please keep me informed of the results.

hooliews
New Contributor II

For the uninstall part I just set the files & processes section to this and it worked. 

hooliews_0-1695755439404.png

 

 

GabeShack
Valued Contributor III

Wondering about syncing the account name with uniflow on the computer to our azure logins, since it isnt matching.

 

IE the mac installer looks at the account name (johnsmith) where as the provisioning in uniflow only looks at the login name (johnsmith@yourdomain.com).  Not finding a way to link the two without having the end user sign into uniflow separately.  I was really hoping to save that extra login.

If the names match then any new print jobs get set right up in their queue

Gabe Shackney
Princeton Public Schools

Keith__Myers
New Contributor III

You do not need to package the files from the .iso that you download from Uniflow (tested with Uniflow Online SmartClient;  macOS 14.1.1; Jamf Pro 11.1. YMMV with on-prem Uniflow, but it should work the same way).

  1. Read the help article regarding the options for creating the installer. Pay close attention to "Login name substitution" and "Silent user registration".
  2. Download the iso and zip all of the files and place the .zip file on your distribution point.
  3. Create a policy and use the .zip file instead of a .pkg. Jamf Pro sees the package inside the .zip and installs it while respecting the .plist and other files in the .zip.

 

--- Keith Myers

user-JdyjyuAeQT
New Contributor

Seems no matter what method I try, works locally, but it fails to install via Jamf. Getting "Installation failed. The package could not be verified." The custom PKG was signed and when I tried it just as a zip files it also can't be verified. Which makes me think the issues is the PKG in the ISO from the uniflow server. Anyone run into this issue, have a fix for it? 

Keith__Myers
New Contributor III

Did you make changes to SmartClientForMac.pkg?

 

You may be able to override that error with the following script set to AFTER in the policy that you're pushing the .zip with:

#!/bin/bash

xattr -d com.apple.quarantine /Applications/uniFLOW\ SmartClient.app

exit 0

 

--- Keith Myers

Turn out to be a really dumb issue. The new upload had a space in the name and that was causing the issue. After I removed the space from the name, it worked. I have had spaces in names in the past, and they worked fine, but maybe something on the newer version of Jamf changed. 

Ok good. After I posted that, I realized that wouldn't help if the package won't install. Too bad you can't edit these responses.

--- Keith Myers

Keith__Myers
New Contributor III

Once the client software is installed, my client is reporting that they are getting errors related to the size of the print jobs. The biggest job was only ~100 pages.

 

"The print job exceeds the maximum allowed file size. Try reducing the print job size, e.g., by printing fewer pages, and then try again".

 

They had to print it in ten jobs, which is insane. I'm wondering if anyone else has ran into this? The only thing related to file size that I can find, is the hard 100 MB limit on emailed jobs. These jobs are initiated from the Mac SecurePrint queue that the macOS uniFLOW Client installs. One of the rejected jobs was 298 MB.

 

I migrated from uniFLOW on-prem. They only started seeing these errors in uniFLOW Online.

--- Keith Myers

Looks like we're on the same boat here... We're also quite annoyed about the artificial (?!) limitations imposed by uniFLOW Online. It's not even possible to properly scan a photo with more than 300dpi, although the Imagerunner Advance device would be able to achieve a much higher resolution...

Keith__Myers
New Contributor III

According to NT-Ware via my client's Canon vendor, the limitation is with Azure and cannot be modified, changed, or overridden. They offered up the drag and drop method in uniFLOW Online as an alternative, but there is a 100 MB limit there as well!

 

The following is the only workaround that I could figure out. If anyone has any other options, please let me know. This is the only documentation on this that I could find, so I am adding some detail here.

 

Use Direct Secure Printing

DSP will allow you to create a print queue pointing to one of the printers configured in uniFLOW Online and make it a sort of local print server. Jobs sent to it are held on that printer until the user prints the job from any of the printers configured in Uniflow.

 

  1. In uniFLOW Online > Extensions, add "Direct Secure Print" and set it to "Enabled".
  2. Select one of the Canon printers onsite. Make sure to use a color printer that has the features that your users use. Go to the printer's http admin page.
  3. In Settings/Registration > Network Settings > Airprint Settings, click the checkbox to enable it and change the name to remove spaces and special characters.
  4. Add the print queue to the desktops with the following command (replace <name> and <ip> with your printer info from step 2):

 

lpadmin -p <Name> -D 'Large Print Jobs' -E -v ipp://<IP>:631/ipp/print -m everywhere

 


Caveats

  • Enabling DSP will make ALL jobs sent to any printer directly Secure Print enabled. If you have any workflows that require print jobs to print automatically, you cannot use this method.

  • Hard drive space allocated is finite (4 GB with 2 GB max for a retained job).

  • It may be confusing to users having another queue, so only deploy it where necessary and provide training.
  • The printer chosen in step 2 must be online and awake in order for it to work, so there are resiliency concerns.

  • Jobs do not appear in the user's print queue in uniFLOW Online, but they will show up when the user logs onto a printer.
  • You will need a large print jobs queue in each location.
  • Limited to 200 users and 2,000 jobs per device.

More info on notes and limitations can be found here:
https://www.nt-ware.com/uniflowonline/doc/eu/contexthelp/#/home/114151/en/help:~:text=Direct%20Secur...

--- Keith Myers

grunz
New Contributor

Hi! As I'm fairly new to packaging apps for MacOS, I'm struggling to accomplish repackaging the uniFLOW installer with the free tool "Packages" (lacking a license for Jamf Composer). I'd be very grateful if somebody could maybe give me some guidance on that!

Keith__Myers
New Contributor III

Hi, If you have Jamf Pro, you should be able to use Composer. You don't need to use it in this case though because it doesn't need to be repackaged. You can use the zip file in your installation policy.

--- Keith Myers

grunz
New Contributor

Thx, but I intend to use the package with Intune. I’ve also been able to repackage the app using the free application “Packages” in the meantime.

Keith__Myers
New Contributor III

I think you can still use the .zip file with a bash script to install it via Intune, but you may want to ask in an Intune-specific forum, or the Mac Admins #microsoft-intune-macos channel.

--- Keith Myers

Nickyvh
New Contributor

Can you explain how you did it with "Packages" for Intune?

dgandhi2
New Contributor

@andymason , the above presentations is awesome and when we try to implement this package with a post install script via pre-stage enrolment we are not getting the app installed once the enrolement is completed but we see the policy is completed. any thoughts on this ? i suspect that the POST install script does not run on the pre-stage as the mac reboots the moment it completes the enrolment.

 

jjams
New Contributor

Is there anyway to hide the uniFLOW Smart Client icon from the system tray? I can't seem to find a plist where I can set this setting.

It's probably not a good idea to install this in your prestage enrollment. Reserve that for things that you absolutely need during the initial enrollment, then put this in a policy with an 'on enrollment' trigger, or leverage DEPNotify or similar to install the software in the order you need.

--- Keith Myers

ejadadic
New Contributor III

For some reason this does install but it never runs the uniFlow app.. I don't see it in the system bar or in the Monitor tool. Any suggestion?

Fouve
New Contributor

Hey Emir,

Thanks for the time today and expressing the issues with the deployment of the macOS SmartClient.  If Jamf Now will allow me to test these deployment methods the community has created out in my lab, I'll see what I can come up with for you guys.  I'll also see what I can do in aiding our support team here at NT-ware as well.

Regards,

Jeremy

grunz
New Contributor

Deploying uniFLOW is really a pain in the a**... I've managed to get the initial installation via Intune to show up on the devices, but no luck with later updates so far...

Nickyvh
New Contributor

Can you explain how you did it for Intune?