I think I may have a solution.
Instead of
printController.print(to: printer, completionHandler: printCompletionHandler)
try
printer.contactPrinter { (available) -> Void in
if (available) {
printController.print(to: printer, completionHandler: printCompletionHandler)
}
}
This seemed to fix the issue for me.
Seems to be one of those times where Apple change things just enough to break them without telling anyone how...