When writing a script / screen play would you write it as 'Vin Diesel says:...' or as the character i.e. 'John Smith says:...'
You'd use the character name. Most screenplays are written well before they're cast, so it would be impossible to use the actor name. And even if you knew the actor (like, it was part of a series) you'd use the character name because it's the character saying the line, not the actor.
ETA: You can see this, for example, in the screenplay for Empire Strikes Back, at http://screenplayexplorer.com/wp-content/scripts/Star-Wars-Episode-V-The-Empire-Strikes-Back.pdf This draft was dated 1979 and the first Star Wars movie came out in 1977, so they would have known who was playing all the parts, but still used the character names.
Technically speaking, you'd do neither. The word 'says' does not appear in that way in any script format I'm aware of. Instead, there's two common options; one used more for theatre and the other for film:
JOHN SMITH: I suppose we've arrived. Let's off.
JOHN SMITH I suppose we've arrived. Let's off.
Excuse the formatting, SE doesn't have a center align markup