Hola, Apple

1

Hablemos de iOS

2

Conozcamos XCode

3

¿Necesito un iPhone para ser iOS Developer?

Tu primera app en iOS

4

¡Hola, Mundo Apple!

5

Navegación con UINavigationController

6

Modales en la navegación

7

Utilizando controles en código

8

Autolayout vs SwiftUI

9

Autolayout

10

Listas con UITableView

11

Celdas personalizadas para nuestras listas.

12

Persistencia: UserDefaults

Manejo de dependencias

13

CocoaPods

14

Carthage

Servicios Web

15

Primeros pasos para consumir servicios

16

Afinando detalles para consumir servicios

17

Convirtiendo los JSON a modelos

18

Alamofire

Proyecto: PlatziTweets

19

Bienvenido a PlatziTweets

20

Configurando Proyecto

21

Diseñando vistas iniciales

22

Configuración de vistas iniciales

23

Configuración de registro

24

Descripción de la API de PlatziTweets

25

Conexión de la API y Autenticación

26

Registro de usuarios

27

Diseño del Tweet

28

Obteniendo Tweets

29

Creación de vista para publicar Tweets

30

Publicando Tweets

31

Borrando Tweets

32

Integración de la cámara

33

Conexión con Firebase

34

Configuración de XCode para correr app

35

Subir imagen a Firebase

36

Publicar Tweet con imagen

37

Tomando Videos para el Tweet

38

Publicar Tweet con video

39

Detalles del video

40

Accediendo al GPS

41

Implementando mapas con MapsKit

42

Mostrando todos los estudiantes en el mapa

43

Retos del proyecto

En producción

44

Enviar a pruebas con Firebase Distribution

45

Enviar tu aplicación a APP Store Connect

46

Distribución de tu app con TestFlight

iOS Avanzado

47

Dark Mode

48

SwiftUI

49

Terminando detalles de una vista con SwiftUI

50

Objective-C

Hola, iOS Developer

51

Felicidades

52

Expert Session: ¡nuevo espacio para resolver tus dudas sobre el desarrollo de Apps para iOS!

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Carthage

14/52
Recursos

Aportes 15

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

/usr/local/bin/carthage copy-frameworks
$(SRCROOT)/Carthage/Build/iOS/PopupDialog.framework
$(SRCROOT)/Carthage/Build/iOS/DynamicBlurView.framework

Bueno, hoy aprendí a leer con más cuidado las instrucciones 🤡 les comparto por si le puede servir a alguien.

Las instrucciones se vuelven ligeramente diferentes en Macs M1. Recomendaría usar Homebrew para instalar Carthage (brew install carthage). Para traer las dependencias del Cartfile, se usa solamente el comando “carthage update --use-xcframeworks”. Por último, solo es necesario agregar los “.xcframeworks” en Xcode y listo 🤓

Si alguien no le ha dado permiso a xcode de utilizar la consola, tienes que hacerlo antes de querer instalar las librerias con Carthage.
https://stackoverflow.com/questions/40743713/command-line-tool-error-xcrun-error-unable-to-find-utility-xcodebuild-n
El error que obtienes si no lo haces es: error: unable to find utility “xcodebuild”, not a developer tool or in PATH

Si alguien tiene problemas intente esto

carthage update --use-xcframeworks en lugar de carthage update --platform iOS

No es necesario modificar nada en el build phase

me funciono para Xcode 13

Dentro de la carpeta de nuestro proyecto:

Terminal:

  • touch Cartfile
  • open Cartfile
    dentro del archivo poner: github “Orderella/PopupDialog” ~> 1.1

Vuelvo a la Terminal

  • carthage update --platform iOS

Para los que les genere un error de tipo
"xcrun: error: unable to find utility “xcodebuild”, not a developer tool or in PATH"

pueden ir a Xcode > Preferences > Locations, y agregar en el coman line Xcode

Si a alguien se le presenta el siguente error en XCode 12: Build FailedTask failed with exit code 1, acá encontré la solucion: https://gist.github.com/skymobilebuilds/61f4a95bd62a3db36b52719aeab7e0d5

  • touch Cartfile
  • Agregar dependencia/s al Cartfile
  • carthage update --platform iOS

Me quedo con la duda de porque no me funciono la instalacion por carthage

Waooooo! no conocia sobre carthage y esta interesante 😃

Tardé cerca de 3 horas para que me funcionará jaja... Pero si alguien como yo hace este curso en 2025, le ahorro el esfuerzo. Sucede que ahora debes usar `carthage update --use-xcframeworks --platform iOS` Esto generará los archivos en Carthage -> Build de la misma manera, esas carpetas solamente se deben de arrastrar ha General -> Frameworks, Libraries and Embedded content No es necesario crear nada en Build Phases! Pd: La libreria que se usa no me funcionó, así que usé estas 2: `github "sberrevoets/SDCAlertView"` `github "SwiftKickMobile/SwiftMessages"` **1. ¿Qué son los** `XCFrameworks`**?** \- Un \*\*XCFramework\*\* es un formato introducido por Apple en Xcode 11 para facilitar la distribución de frameworks compatibles con múltiples plataformas (iOS, macOS, tvOS, watchOS). \- Antes de los XCFrameworks, los frameworks compilados con Carthage no soportaban múltiples arquitecturas de manera tan sencilla (por ejemplo, las simulaciones en dispositivos con chip M1 o M2). ### **2. ¿Qué hacía el comando anterior?** Antes, al usar `carthage update --iOS`, Carthage construía frameworks binarios específicos para iOS. Esto funcionaba bien para arquitecturas tradicionales (como Intel para simuladores y ARM para dispositivos). Sin embargo, con el cambio a Apple Silicon (chips M1/M2), surgieron problemas de compatibilidad. ### **3. ¿Por qué es necesario** `--use-xcframeworks`**?** Apple introdujo cambios en cómo Xcode maneja las arquitecturas y las firmas de código, especialmente para el soporte universal (Intel y Apple Silicon). Al usar `--use-xcframeworks`: \- Carthage genera \*\*XCFrameworks\*\*, que contienen todas las arquitecturas necesarias dentro de un solo paquete. \- Esto asegura que las dependencias funcionen tanto en simuladores (Intel o Apple Silicon) como en dispositivos físicos, sin conflictos de arquitectura. **4. ¿Por qué las dependencias no funcionan sin** `--use-xcframeworks`**?** Si no usas `--use-xcframeworks`: * Carthage generará frameworks tradicionales, que \*\*no incluyen soporte universal para Apple Silicon\*\* ni las nuevas configuraciones de Xcode. * Esto puede causar errores como: * "Framework is missing architecture arm64" (para dispositivos M1/M2). * "Unsupported architecture" en simuladores. * Problemas con el código firmado por Apple. * **5. ¿Por qué también debes especificar** `--platform iOS`**?** \- El flag `--platform iOS` asegura que Carthage solo compile las dependencias necesarias para iOS, evitando otros entornos como macOS, tvOS o watchOS. Esto reduce el tiempo de compilación y evita incluir binarios innecesarios. **6. Solución completa del comando** carthage update --use-xcframeworks --platform iOS \- \*\*`--use-xcframeworks`\*\*: Genera frameworks compatibles con Apple Silicon y universal. \- \*\*`--platform iOS`\*\*: Limita las dependencias a iOS para ahorrar tiempo. **Conclusión** El cambio es una respuesta directa a las nuevas arquitecturas de Apple y las mejores prácticas para distribuir frameworks en un entorno multiplataforma. Si solo te funcionan las dependencias con `--use-xcframeworks`, es porque tus frameworks dependen de este formato para ser compatibles con las configuraciones modernas de Xcode y los dispositivos Apple actuales. *Fuente - ChatGPT*

Hasta en Platzi aplican la del famoso “Yo no lo instalo porque ya lo tengo” XD

Actualizacion:
En Build Phases el script es:
/usr/local/bin/carthage outdated --xcode-warnings 2>/dev/null

Luego desactivar la casilla que dice “Based on dependency analysis”

Luego en los input file, hay que quitar el directorio iOS:

$(SRCROOT)/Carthage/Build/PopupDialog.framework
$(SRCROOT)/Carthage/Build/DynamicBlurView.framework

De esta forma me funciono a mi:
Xcode Version 14.2 (14C18)
MacBook Pro
Chip: Apple M1 Pro

Saludos!

Actualmente solo se requiere el comando

carthage update

para actualizar/descargar las dependencias para aplicaciones iOS, tvOS, o watchOS

¿De donde obtuvo el /usr/local/bin/carthage copy-frameworks?, alguien me lo puede decir por favor. !!!