Specular map + shadows = TV Noise on texture

I have one Directional light in a scene casting realtime shadows on animated 3d models. The models are using a shader from ShaderForge that calculates normal and spec maps. I’m building for iOS.

If I have both the specular part of the shader on and the shadows, I get this noise:

Shadow And Spec Map

If I keep my specular map but ditch the shadows, it looks like this:

No Shadow but Spec

And if I keep my shadows, but ditch the specular map, it looks like this:

No Spec but Shadow

Any ideas what is causing this?

I found in the Unity documentation on shadows that “on mobile platforms realtime shadows for directional lights always use 1 shadow cascade and are Hard Shadows.”

I was telling my directional light to cast Soft Shadows and so somewhere along the line Unity was fighting with itself trying to render it. Setting my directional light to cast Hard Shadows solved the problem.