As of XTension version 9.4.13 Mojave is officially supported. There are potential problems due to changes in security and other underlying system functions that you need to be aware of before you decide to upgrade. This is a list of potential or noted issues that have cropped up so far in testing or been reported by users who like to be on the cutting edge. It is by no means an exhaustive list and your milage may vary. Overall Mojave seems to be running XTension and all the other necessary systems just fine.
Installing a previous version of the OS is very difficult to impossible so I would recommend using an application such as Carbon Copy Cloner to make a bootable copy of your system disk to an external drive before you perform the upgrade. That way if you do have problems restoring to the previous version is a matter of rebooting from the external drive and running another clone back to the internal drive. As an aside you should probably have a bootable backup on an external drive being updated every night by CCC anyway. I do this so that should the internal drive fail I can boot to the external and have the house back up and running in an instant. Carbon Copy Cloner is not the only app for making bootable disk clones but it is the one I use and so what I can recommend. It’s well worth purchasing a copy for the peace of mind.
Mojave adds a requirement that any app wishing to script control another app must be granted permission by the user. If you have any tell blocks in an XTension script that tell another app or part of the system to do anything when they run a grant permissions dialog will appear and the script will either fail and log an error or XTension will entirely hang while it waits for you to approve or deny the permission to script that app. If you click allow everything will work fine the next time the script runs. If you click deny or it happens when you’re away from the machine then no dialog will be presented the next time the script runs, the script will just fail. In order to allow XTension to script an app after the initial dialog you must go to the Security & Privacy screen in the System preferences. Then select the “Automation” entry from the left hand list and find XTension in that list. Each app that it has attempted to script will be listed below it’s name with a checkbox. If the request for access was denied then the checkbox will not be checked. Make sure that the entry for each app you want to script is checked.
A problem with how this new security has been implemented is that there is no way for me to ask the system for permission to script an app when we load the database. The script that talks to the remote app must be actually run before the permission dialog will appear. There is no way for you to manually add the apps that you want to control via XTension to the list in the system preferences. You must manually run any scripts that talk to other apps while you are sitting at the computer after the updated and allow each and every one to be controlled. If you update and walk away then the scripts will either error or XTension may hang up waiting for your permission to run the script.
NOTE with each update to XTension you will have to give permission for each script all over again. It would probably be a good idea to create a script that runs all the other scripts that talk to an external app one after another and run this after an update so that while you’re sitting there you can OK each dialog that comes up. You should also consider dropping Apple a feedback about how an app needs to be able to request these permissions ahead of time and how they should be remembered across updates.
XTdb may require an update to run on Mojave. Please download and install at least the 3.5.6 version. Some people report that the earlier version runs fine, others report an error at launch. 3.5.6 fixes this problem. The Mojave fix is the only change to the functionality of the program in the 3.5.6 version though it was compiled with better optimization settings and does show slightly better performance on my system so you may wish to upgrade even if you’re not updating to Mojave as long as you’re running at least 10.10 it will run. For 10.9 and earlier please stick to the 3.5.5 version.
If you are using any direct USB devices make certain that they have stated on their company sites that their drivers are supported under Mojave. The requirements seem to have changed again and some older non-signed drivers that I still test for older devices are no longer recognized. This may be because the update resets your System Integrity Protection settings and the fix may be as simple as turning that back on if you have to use older drivers. If you must use truly ancient drivers that are unsigned it may be necessary to turn on Kernel Developer mode on your machine in order to allow it to load those older drivers. This is probably not terribly safe and should be used only as a stop gap measure until you can replace any devices that are so old as to be not supported by their makers anymore.
In my system my FTDI based USB/Serial adaptors continued to work just fine. I am using the built in FTDI drivers that are included in the OS. If you have installed the driver from FTDI instead make sure that they state the driver is supported under Mojave or you may have to uninstall it and use the built in driver.
Non-FTDI adapters appear to still work as well however they may change their port names. If you startup XTension after the update and some serial connected devices fail to find their ports simply edit the interface and re-select a similarly named serial port. If you have many that have changed I would recommend unplugging them all and adding them one at a time so that you can see which device was added to the list. XTension will update the popup of available serial devices as you plug and unplug so there is no need to close and re-open the edit window. NOTE it is important not to unplug a usb serial adaptor that is actually in use by an XTension plugin or other program. This can cause crashes or even kernel panics.
In my case the serial port I lost was the one built into an Arduino UNO that I have running the mySensors plugin. It changed it’s name from something like “usbmodem1a12341” to “usbmodem1A123401” making all the letters uppercase and making the last incremental number if you have more than one of them plugged in into 2 digits. So in my case it was easy to see what had changed and select the new port. After doing that everything came back online.
If you are running OSX server you’ll be presented with a warning when running the update that most of the servers normally included with OSX Server are no longer included in the Mojave version and will be disabled after the update. No more web server, calendar server, messages server, contacts server, and several others. There is a link in the documentation to a page at apple that tells you how you can re-install these open source software packages and manage them separately. If you rely on any of these you should make sure you understand the process of re-installing and configuring them before doing the update.
The reason I originally put OSX Server on my house machine was for the ability to share a disk as a time machine volume. This sharing has been built into the OS since Sierra or High Sierra and you can turn that on in the regular sharing pane of the system preferences. So if this is what you’re using it for you don’t need OSX Server at all anymore.
These are the issue or potential issues that I’m aware of at the moment, there may be more. If you discover any other issues after the update please let me know so I can include them here.