Skill: configuracion-proyecto-xcode · Cultiva IA · 2026-06-16
Si se pasa --plist, añade el archivo al grupo del target y lo registra en PBXResourcesBuildPhase. Idempotente: si ya existe, lo salta.
Llama a rootObject.addSwiftPackage() con la URL del repositorio y la versión mínima (upToNextMajorVersion). No toca el .pbxproj con sed ni Ruby.
Por cada producto, crea un XCSwiftPackageProductDependency y un PBXBuildFile y los añade al build phase de frameworks del target principal. Duplicados omitidos automáticamente.
Detecta si algún producto contiene "Firebase" y añade -ObjC a todas las configuraciones de build. Evita el crash fatal de Objective-C categories en runtime.
Si se incluye FirebaseCrashlytics, activa DEBUG_INFORMATION_FORMAT = dwarf-with-dsym y añade la fase de Run Script con los inputPaths correctos para la subida de símbolos.
Llama a xcodeproj.write(path:) usando la librería nativa XcodeProj (Swift). El .pbxproj queda en formato válido, legible en git diff, sin regresiones de estructura.
XcodeProj (tuist/XcodeProj). El .pbxproj resultante es estructuralmente válido y produce diffs limpios en git. La operación es idempotente: ejecutar el script dos veces no duplica entradas.