I think both have their merits, but I also think you shouldn't feel force in doing any of the two.
I started with deep specialization (navite iOS only) and thanks to that I got first first full time job and got into the Tech scene. After that I've been generalizing. If what you know is too niche what are you going to do when it goes away? Not saying that it applies to iOS (it does not), but it is something to think about if your only area of knowledge is keeply specialized only on one specific tech stack from one company. It might mean that there are a few people that know it so assured work until the end of time (cobol developers) and if that sounds good for you, go ahead. If that sounds boring (or scary) maybe it is the time to learn something new. Don't fall into the trap of just learning everything and really know nothing though. At least know one thing really well. Learning something should be useful for a goal. If once in a while you want to learn a new technology just cause it's interesting it's all good and I do that often, but if you only do that and never actually use it on a real problem it feels like a bit wasted to me.