C'est la règle générale. Vous n'êtes pas absolument obligé d'utiliser XCode pour OS X. Il existe des plateformes de développement alternatives pour celui-ci, et en tant que plateforme, l'OS est très flexible à ce sujet. La raison en est la méthode de livraison autorisée. Vous pouvez installer un logiciel pour OS X de n'importe où. L'OS, en règle générale, n'autorise pas les logiciels non certifiés/non fiables à fonctionner sur lui, mais il existe un moyen de passer outre, si vous le souhaitez.
L'OS est plus restrictif. Vous ne pouvez télécharger des logiciels pour lui qu'à partir de l'App Store d'Apple, et ce qu'il autorise dans l'App Store est soumis à des conditions strictes, qui sont décrites dans le contrat de licence de développeur d'Apple. Ils ont une liste de langages approuvés que vous pouvez utiliser, et ils sont tous supportés par XCode, bien qu'ils ne stipulent pas que vous devez utiliser XCode pour développer pour iOS.
Mon interprétation de la licence développeur actuelle d'Apple est qu'elle vous permet d'utiliser des langages en dehors de la liste approuvée pour iOS, mais que le runtime pour ces langages doit être écrit dans un ou plusieurs des langages approuvés, et qu'il doit adhérer à certains comportements. Par exemple, si vous écrivez une application dans un autre langage, le moteur d'exécution et l'application que vous avez écrite dans cet autre langage doivent être regroupés dans un seul paquetage d'application. Votre app. ne peut pas télécharger ou mettre en ligne un code alternatif. Vous pouvez même programmer dans le langage alternatif sur la plate-forme iOS, mais la plate-forme linguistique ne vous permet pas de partager le code avec qui que ce soit. Des personnes ont trouvé des moyens de contourner ce problème, mais cela implique de franchir des obstacles qui n'impliquent pas l'ouverture d'une "porte dérobée" dans la plate-forme linguistique. Je ne suis pas sûr des détails.