2. Configuración del proyecto de Xcode — incorporación local de los xcframeworks
Aquí no hay fusión de manifiestos ni URL de repositorio: debes integrar manualmente dos frameworks binarios en el proyecto de Xcode (o mediante un script de configuración, si tu equipo dispone de uno).
2.1 Dónde colocar los frameworks
Coloca AKSKit.xcframework y AppsKit.xcframework directamente en la misma carpeta que tu .xcodeproj, es decir, al mismo nivel que Podfile y la carpeta de código fuente de tu app, no dentro de esta ni dentro de Pods/. Esto es importante porque Xcode resuelve la referencia al framework mediante una ruta relativa simple (sin necesidad de personalizar FRAMEWORK_SEARCH_PATHS): si los mueves, la referencia del archivo de proyecto deja de ser válida.
YourApp/ <- CocoaPods project root (Podfile lives here)
├── Podfile
├── AKSKit.xcframework/ <- sibling of the .xcodeproj
├── AppsKit.xcframework/ <- sibling of the .xcodeproj
├── YourApp.xcodeproj/
├── YourApp.xcworkspace/ <- open THIS, not the .xcodeproj, once Pods are installed
└── YourApp/ <- your app target's source folder
├── AppDelegate.swift
└── ...2.2 Añadirlos al target
En Xcode, selecciona el target de tu app → General → Frameworks, Libraries, and Embedded Content → añade ambos archivos .xcframework y selecciona Embed & Sign para cada uno. En concreto, esto debe generar:
- una entrada
PBXFileReferencepara cada framework consourceTree = "<group>"y unpathsimple (sin prefijo de carpeta) - ambos frameworks incluidos en Link Binary With Libraries (la fase
PBXFrameworksBuildPhase) - ambos frameworks incluidos en una fase de compilación de copia de archivos Embed Frameworks (
PBXCopyFilesBuildPhase,dstSubfolderSpec = 10) con los atributosCodeSignOnCopy+RemoveHeadersOnCopy: esto es exactamente lo que genera la selección de "Embed & Sign" en la interfaz de Xcode
Comprueba también que LD_RUNPATH_SEARCH_PATHS incluya @executable_path/Frameworks (Xcode lo añade automáticamente cuando incorporas un framework mediante la interfaz; esto permite cargar los frameworks incorporados y firmados en tiempo de ejecución).
Si automatizas este proceso con un script en lugar de usar la interfaz de Xcode (por ejemplo, como paso de configuración de CI), los tres elementos anteriores —referencia al archivo, fase de enlazado y fase de incorporación— son exactamente lo que debes añadir a
project.pbxproj.
2.3 Abrir el workspace, no el proyecto
Una vez ejecutado pod install, abre YourApp.xcworkspace. Este workspace conecta el target de tu app con el proyecto Pods.xcodeproj generado por CocoaPods; si abres directamente el .xcodeproj, la compilación se realizará sin enlazar correctamente las dependencias de tu Podfile.