May 2018

CHM Viewer for MacOS

This application is not my work nor have I made modifications to the source code - I have just made it compile for 64bit MacOS. The iCHM this works for is https://github.com/NSGod/ichm.

Whilst looking for a free CHM viewer I came across iCHM. I wanted to read the documentation for a third party library and didn't feel the need to spend money just to read the documentation. iCHM looked the part and worked; mostly. All the binaries I could find (before it became a pay for use application on the App Store) are 32 bit and won't be supported on MacOS after High Sierra. This bothers me as I know that at some stage in the future I'll have to go through the rigmarole of finding a free CHM viewer again. Given that older versions of iCHM are open source - I document here how I created a binary.

Disclaimer - Works for me. Your mileage and outcome may be different.


  1. You'll need to have Xcode installed. Off to the App Store if you haven't already.
  2. Download the sources for iCHM from GutHub here: https://github.com/NSGod/ichm
  3. iCHM requires some frameworks, all available on GitHub, get them here: https://github.com/dorianj/PSMTabBarControl, https://github.com/lvivski/chm_lib and https://github.com/sparkle-project/Sparkle. Use the green "Clone or download" control to download the full source archive of each framework.
  4. Create a Frameworks folder in the iCHM source folder.
  5. Extract all the frameworks zips to some temporary location. You can delete the sources once the frameworks are built.
  6. Open a terminal and cd to the PSMTabBarControl folder.
  7. Enter ./build.sh
  8. Copy the contents of build/Release to the iCHM/Frameworks folder.
  9. cd to the chm_lib folder.
  10. Enter ./build.sh
  11. Copy the contents of build/Release to the iCHM/Frameworks folder.
  12. cd to the Sparkle folder.
  13. Enter make release
  14. Copy the contents of build/Release to the iCHM/Frameworks folder.
  15. Open Xcode and open the iCHM Xcode project file. Perform the changes Xcode deems necessary.
  16. Go to the linker and remove the -lcrypto link module.
  17. Change the target platform to 10.12 and ensure 64bit is seclected.
  18. Change the version number to reflect the 64bit nature of the build. This is necessary but can remind you if you forget where it came from.
  19. Build a release and copy it to your Applications folder.
  20. Tada.

Long time no blogs

Yes it has been a while, but I have been busy. Some agenda items have had to be pushed further down the to do list until time reappears in my calendar. I have to take care of my family first, work second, me third and then everything else in a quasi random list of things I would like to get done. Now that I have space to always give time to my loved ones in my schedule, I can find other moments that I can devote to some previously deferred items. Bring on the second half of 2018.