When companies complain of shortages, they generally mean "shortage at the price I would like to pay". The talent is there, they just need to be willing to pay the _true_ market clearing price, and to advertise as such. Having trouble hiring an iOS lead? Advertise the job with a $200k salary, and you'll see many more applicants.
Granted, there's going to be related costs of sifting through many unqualified applicants; but that's part of the cost of doing business.
Finally, I explained above why businesses don't want to train employees. It really is that simple. Th e math is basic and as inescapable as gravity. (note that planes do fly, aka, you can defy it by devising a clever contraption).