Instalar Xcode y el simulador
Al terminar: Dejar Xcode, las Command Line Tools y un simulador de iPhone listos para programar para iOS.
Al terminar esta lección tendrás Xcode listo: instalado, con la licencia aceptada, con la Terminal apuntando a él y con un simulador de iPhone que se abre. Xcode es el IDE de Apple (entorno de desarrollo integrado: el programa donde escribes, compilas y ejecutas el código) para todo lo de iOS: sin él no hay Swift (el lenguaje de programación de Apple), ni simulador, ni app para iPhone.
No es solo por la interfaz: para crear apps de iPhone, Swift y también Kotlin necesitan piezas de Apple que solo trae Xcode. Un simulador es un iPhone falso que se ejecuta en una ventana de tu Mac.
Aviso de entrada: son del orden de 25 GB y cerca de una hora con buena conexión, contando el runtime del simulador (el sistema iOS que ejecuta el iPhone simulado, que se descarga aparte; lo verás en el paso 4). Lanza la descarga ahora y sigue leyendo mientras baja.
Por qué hace falta Xcode, incluso para Kotlin
En el curso de la Pokédex usarás Kotlin también para iOS. Kotlin produce código para los chips de Apple, pero para convertirlo en una app que iOS acepte hay que unirlo con las librerías de Apple y firmarlo con las reglas de Apple. Esas piezas no se distribuyen aparte: vienen dentro de Xcode.
Paso 1 · Descarga Xcode
Primero, comprueba que tu macOS es lo bastante reciente para esa versión de Xcode: la ficha de Xcode en la App Store lo dice en «Compatibilidad», y tu versión está en menú Apple → Acerca de este Mac. Si no lo es, la App Store te ofrecerá actualizar el sistema primero.
Después abre App Store, busca «Xcode» y pulsa Obtener (y después Instalar). Necesitas una Apple Account (la cuenta con la que ya compras en la App Store o entras en iCloud, antes llamada Apple ID) con sesión iniciada en el Mac. Verás el avance de la descarga como un círculo de progreso en el propio botón de la ficha de Xcode y en la pestaña de actualizaciones de la App Store.
La alternativa es la página de descargas de Apple: developer.apple.com/download/all (hay que entrar con tu Apple Account). Sirve para versiones anteriores, betas y las herramientas de línea de comandos por separado; para empezar, la App Store es lo más simple.
La verificación en dos pasos (también llamada autenticación de dos factores: al entrar, Apple te manda un código a tu iPhone) no te la pide la App Store para descargar, pero Apple la exige a las cuentas de desarrollador. Solo la necesitarás si en el paso 6 instalas apps en tu iPhone; actívala hoy (en Ajustes del Sistema, pulsando tu nombre arriba, en el apartado de inicio de sesión y seguridad) y te ahorras el corte a mitad del paso 6.
Paso 2 · Ábrelo una vez, acepta la licencia y deja que termine
Cuando termine la instalación, abre Xcode desde Aplicaciones. La primera vez te enseña los términos de la licencia de Apple y te pide aceptarlos (te pedirá la contraseña del Mac), y después instala componentes del sistema. Espera a que acabe: la primera ejecución instala piezas que ningún otro proceso instala por ti. Si te ofrece descargar plataformas o componentes adicionales, di que sí al de iOS: es el del paso 4.
Si Xcode te pidió aceptar la licencia en esa ventana y terminó de instalar componentes, con eso basta: no hace falta repetirlo con ningún comando.
Paso 3 · Que la Terminal apunte a Xcode
Las herramientas que compilan Kotlin (Gradle y el compilador de Kotlin) no abren Xcode: llaman a herramientas de Apple desde la Terminal. Qué Xcode les responde lo decide una configuración del sistema (algo así como un cartel que dice «las herramientas están por aquí»), y conviene mirarlo antes de usar ningún comando de Xcode. La Terminal es la aplicación de macOS donde escribes órdenes de texto y pulsas Intro: ábrela con ⌘ + Espacio, escribiendo «Terminal» y pulsando Intro. Las órdenes de esta lección (una orden también se llama comando) se escriben o se pegan ahí, una a una. Lo que va detrás del nombre de la orden (-p, -version, list runtimes…) son opciones: le dicen qué quieres que haga. Y xcrun lanza una herramienta que viene dentro de Xcode.
Xcode ya incluye las herramientas de línea de comandos (las que se usan escribiendo órdenes en la Terminal, sin ventanas ni botones): no tienes que instalar nada más.
Dicho sin jerga: directorio es carpeta, y el SDK (kit de desarrollo) son las piezas de Apple para crear programas. Hay un Xcode completo y un paquete pequeño, y xcode-select decide cuál se usa. Si algún día instalas un segundo Xcode, el cartel no se mueve solo: lo cambias tú con la orden de abajo.
Comprueba a cuál señala el cartel:
xcode-select -p/Applications/Xcode.app/Contents/DeveloperEso es una ruta: la dirección de una carpeta. Cada / entra en una carpeta dentro de la anterior: en Applications, dentro de Xcode.app, en Contents y en Developer.
Si te responde /Library/Developer/CommandLineTools, corrígelo (sudo delante de una orden la ejecuta con permisos de administrador y te pide la contraseña del Mac; mientras la escribes no se ve nada, es normal):
sudo xcode-select -s /Applications/Xcode.appPlan B: si alguna orden de la Terminal te dice que faltan las herramientas de línea de comandos, xcode-select --install abre un diálogo de macOS que las descarga. Con Xcode instalado normalmente no hace falta.
Ahora ya puedes preguntarle a Xcode su versión, y comprobar también Swift, el lenguaje de Apple, que viene con él:
xcodebuild -version
swift --versionXcode 26.2
Build version 17C52
swift-driver version: 1.127.14.1 Apple Swift version 6.2.3 (swiftlang-6.2.3.3.21 clang-1700.6.3.2)
Target: arm64-apple-macosx26.0Tus números pueden ser otros: lo que importa es que xcodebuild conteste con una versión y swift con «Apple Swift version», no con un error.
Lo que viste en la ventana de la licencia se puede hacer también desde la Terminal. No lo necesitas si abriste Xcode y terminó (paso 2); sirve para máquinas sin pantalla, o por si la primera ejecución se quedó a medias (ejecutarlo de más no hace daño):
sudo xcodebuild -license accept
xcodebuild -runFirstLaunchsimctl es la herramienta que crea, arranca y borra simuladores. Si no está, no hay simulador que arrancar por mucho Xcode que tengas instalado.
Paso 4 · El runtime del simulador se descarga aparte
Este es el paso que se salta todo el mundo y el que provoca la pregunta «¿por qué el desplegable de destinos está vacío?». Un destino es el dispositivo donde se ejecutará la app (un iPhone simulado, por ejemplo); en Xcode se elige en un desplegable de la barra superior.
Xcode ya no trae dentro todas las versiones de iOS que puedes simular. Las trata como componentes opcionales, cada una con su descarga.
Primero mira si ya tienes alguno (con xcrun simctl list runtimes, más abajo). Si la lista sale vacía, desde la Terminal, una línea:
xcodebuild -downloadPlatform iOSO con el ratón: Xcode → Settings → Components (en algunas versiones la pestaña se llama Platforms), y en la sección Other Installed Platforms el botón para añadir plataformas, donde eliges iOS y su versión. El texto exacto del botón cambia entre versiones de Xcode.
Cuando termine, pregúntale a la máquina qué puede simular:
xcrun simctl list runtimes== Runtimes ==
iOS 18.2 (18.2 - 22C150) - com.apple.CoreSimulator.SimRuntime.iOS-18-2
iOS 26.2 (26.2 - 23C54) - com.apple.CoreSimulator.SimRuntime.iOS-26-2Con al menos una línea ahí, has terminado el paso. Con cero líneas, no sigas: la lección Tu primera app de iOS no tendrá dónde ejecutar nada.
Paso 5 · Abre el simulador
Con el runtime instalado, ya puedes abrir un iPhone simulado. Desde la Terminal:
open -a SimulatorSe abre la app Simulator y, tras unos segundos, arranca un iPhone con la pantalla de inicio de iOS. Otra forma de llegar a la misma app es el menú Xcode → Open Developer Tool → Simulator.
Plan B: si la app se abre pero no arranca ningún iPhone, en su menú elige File → Open Simulator y escoge un modelo; o desde la Terminal, mira los modelos que tienes (verás iPhone, iPad…) con xcrun simctl list devices available y arranca uno con xcrun simctl boot "iPhone 16 Pro" (con el nombre que te salga).
Pruébalo: pulsa la pantalla con el ratón como si fuera el dedo y abre los Ajustes del iPhone simulado. Para apagarlo, cierra la ventana o pulsa ⌘Q sobre la app Simulator.
Paso 6 · Tu Apple Account dentro de Xcode
Xcode → Settings → Accounts, botón + abajo a la izquierda, Apple Account, y entras con tu cuenta. (La opción puede salir todavía como «Apple ID», el nombre antiguo.) Al terminar, en la columna de la derecha aparece un equipo con un nombre curioso.
El Personal Team es gratis y sirve para firmar una app —ponerle la firma digital que iOS exige— e instalarla en tu propio iPhone. Instalar en un iPhone real exige además un par de ajustes del propio iPhone (activar el Modo de desarrollador y confiar en tu cuenta de desarrollador), que se explican en la lección donde llegues a hacerlo. Para la App Store hace falta el programa de pago, y eso es cosa de la lección Publicar en la App Store.
Para el simulador no hace falta ninguna cuenta. Si solo vas a trabajar contra el simulador durante el curso, puedes saltarte este paso y volver cuando quieras el móvil de verdad en las manos.
El Xcode que tienes y el iOS que ejecutas son dos números distintos
Es la confusión más cara de esta lección, así que mírala con datos. Esto contestó el Mac donde se probó la guía:
xcodebuild -version
xcrun simctl list runtimesXcode 26.2
Build version 17C52
== Runtimes ==
iOS 18.2 (18.2 - 22C150) - com.apple.CoreSimulator.SimRuntime.iOS-18-2
iOS 26.2 (26.2 - 23C54) - com.apple.CoreSimulator.SimRuntime.iOS-26-2Con Xcode 26.2 instalado hay dos runtimes, 18.2 y 26.2: un iPhone 16 Pro simulado puede correr el 18.2 aunque Xcode sea el 26.2. Ni error ni versión desactualizada: el simulador ejecuta una copia de un sistema operativo iOS, y su versión no es la de Xcode.
Cuando en la lección Tu primera app de iOS elijas destino, estarás eligiendo runtime + modelo de dispositivo, no versión de Xcode. Tenerlo claro ahora te evita un rato largo de confusión luego.
Paso 7 · Tu primer Playground
Un Playground de Xcode es un fichero donde escribes unas líneas de Swift y Xcode las ejecuta solo, sin crear ninguna app. Lo usarás en los fundamentos de Swift para los ejercicios de práctica; hoy sirve para comprobar que Xcode ejecuta código. De momento basta con copiar lo que sale: qué es var, por qué van comillas o por qué print lleva paréntesis se explica en la parte de Swift.
- En Xcode, menú File → New → Playground…
- Arriba, la pestaña macOS; elige la plantilla Blank y pulsa Next. (macOS y no iOS: así se ejecuta en tu Mac sin arrancar un simulador, y va más rápido.)
- Déjale el nombre que propone,
MyPlayground, guárdalo en Documentos y pulsa Create.
Se abre con este contenido:
// Trae las piezas de Apple para programas de Mac (de momento no las usas)
import Cocoa
// Guarda el texto "Hello, playground" con el nombre greeting («saludo»)
var greeting = "Hello, playground"A la derecha de cada línea, la columna de resultados enseña el valor que ha producido esa línea. Añade al final estas dos líneas, con tu nombre:
// print muestra en la consola (el panel de texto de abajo) el texto que le das
print("Hola, soy Ana")
print("Empiezo a programar")La consola es el panel de texto de abajo, donde un programa escribe lo que imprime. El Playground se vuelve a ejecutar solo al cambiar el código; si no lo hace, pulsa el botón de ejecutar (el triángulo, abajo a la izquierda). Si no ves la consola, ábrela con View → Debug Area → Activate Console.
Hola, soy Ana
Empiezo a programarPunto de control
Esta lección se comprueba preguntándole cosas a la máquina y mirando el simulador: cuatro comandos con su respuesta, y una ventana que se abre.
xcode-select -pimprime/Applications/Xcode.app/Contents/Developer.xcodebuild -versionimprime una versión, no un error.xcrun simctl list runtimeslista al menos un runtime de iOS.swift --versionimprime una versión de Swift (por ejemploApple Swift version 6.2.3).open -a Simulatorabre un iPhone simulado con su pantalla de inicio.- El Playground muestra tus dos líneas en la consola.
Si los cuatro comandos contestan, el simulador se abre y el Playground muestra tus líneas, Xcode está listo. Si el tercero (la lista de runtimes) sale vacío, vuelve al paso 4: te falta la obra, no el teatro.
Reto · Ejercicio: pregúntale a la máquina, no a Xcode
Sin abrir Xcode, averigua tres cosas y anótalas:
- Qué versión de Xcode está activa.
- A qué carpeta apunta la línea de comandos.
- Qué versiones de iOS puedes simular, y qué iPhone concreto usaría cada una.
Ver solución
Los comandos son estos:
xcodebuild -version
xcode-select -p
xcrun simctl list devices availableEl tercero agrupa los dispositivos por runtime, que es la forma más clara de ver la relación:
== Devices ==
-- iOS 18.2 --
iPhone 16 Pro (6E27BAF4-06FB-4B4C-A23A-BEF588E8CEC3) (Shutdown)
iPhone 16 (BE85C1CC-E909-4482-BC7C-9DCD36CC8A9A) (Shutdown)
-- iOS 26.2 --
iPhone 17 Pro (5B5199B2-8EC3-4ACC-A514-C3E3E2D1EAC0) (Shutdown)
iPhone Air (A1287ED8-CA56-42AC-B984-A8D60662D90C) (Shutdown)Tu lista puede tener más modelos o menos (aquí se recortó). Un dispositivo cuelga de un runtime, no de Xcode. El iPhone 17 Pro solo existe porque existe el runtime 26.2; si borras ese runtime, el dispositivo se va con él.
Comprueba lo que entendiste
5 preguntas · necesitas 4 para completar la lección
1.Aún no has escrito nada para iPhone. ¿Por qué hay que instalar Xcode ya, antes de empezar con Swift?
2.Instalas Xcode, lo abres, y al elegir destino no aparece ningún simulador. ¿Qué te falta?
3.Tienes Xcode 26.2 y
xcrun simctl list runtimeslista iOS 18.2 y iOS 26.2. Un iPhone simulado corre el 18.2. ¿Qué está pasando?4.
xcode-select -presponde/Library/Developer/CommandLineTools. ¿Por qué es un problema para este curso?5.Quieres probar una app en el simulador y no tienes cuenta de desarrollador de pago. ¿Qué necesitas?