iShowU Instant is a realtime screen capture tool from ShinyWhiteBox. The webpage for the product is here.

I was recently asked to deploy this to a set of lab machines within my organization. A set number of licenses had been purchased. The software would therefore need to be installed and licensed automatically. My work on this presented a few challenges, none of which will be unfamiliar to those in Mac administration, but each step helped me learn something new. If you're reading this, hopefully you'll find something of use!

Notes

In the course of my work on this, I had several discussions with the vendor of the software. The following notes, determining how I proceeded, came out of these discussions:

  • The free trial of the software available on the ShinyWhiteBox website is the version of the app we need.
  • The license should be applied post install. Doing so converts the trial into the full app.
  • Licensing the app requires placing 2 x files in the user home directory. The app does not respect system locations (i.e. something like /Library/Application Support), so this must be done for each user of the machine who wishes to use the software.

Obtaining the software

First, I downloaded the software from the ShinyWhiteBox website. It's a .dmg, so I mounted and inspected it in the Finder. There are 2 items at the root - iShowU Instant.app and iShowU Audio Capture.pkg. After some consultation with the stakeholders, we determined both should be installed. Only the .app requires licensing.

I use AutoPkg, so wanted to use this to obtain the most recent version of the software and ensure that new releases get captured and imported to my Munki repo. There was an existing recipe, but this was 3 years old and pulled down an older version than the then current release. It also did not take any steps to deal individually with the items within the .dmg (i.e. running CodeSignatureVerifier on both items). There was also no existing Munki recipe.

My choices were therefore:

  • Raise an issue with the maintainer of the existing recipe.
  • Fork the repo containing the existing recipe, modify, and raise a Pull Request. If accepted, use this updated recipe as the ParentRecipe for a .munki recipe that I would author.
  • Fork the repo, modify the existing recipe to my requirements, and use this as the ParentRecipe for my .munki recipe.
  • Start from scratch, authoring my own .download and .munki recipes.

Due to time constraints, the first 2 options were out. The general messiness of the 3rd option made that less attractive. Option 4, while representing a duplication of existing community efforts, was therefore the most suitable way forward.

Recipe considerations

  • iShowU Instant.app and iShowU Audio Capture.pkg are provided together in a single .dmg. However, iShowU Audio Capture.pkg is also available separately from this support article. I decided to focus my efforts on a single recipe targeting the single .dmg. Presumably, the components included in this 'release' version of the software will always support each other. The version of iShowU Audio Capture.pkg elsewhere on the site is more likely to fall out of support.
  • On deciding on this approach, I then realised that more work would be required on the .munki recipe than I normally put in, as it would need to account for the 2 items on the .dmg. For example, without attention, the MunkiImporter processor will import the .dmg, but only parse version information from the .pkg, and generate the pkginfo file based on this. That will cause issues when attempting to deploy, track and update installations.

Licensing considerations

  • While the licensing process for this application isn't ideal, the ever useful outset will be able to handle this for us easily.

Install considerations

iShowU Audio Capture.pkg installs a kernel extension. This will need to be whitelisted by your management tool. The information you need is:

Team Identifier: PMJ275TUX
Bundle Identifier: com.shinywhitebox.iShowU-Audio-Capture

In the next post, I'll look at the AutoPkg recipes that I put together to handle this.