2009-08-28 8 views
13

Estoy trabajando con un proyecto existente que produce una biblioteca dinámica (Cocoa API).¿Cómo cambio un objetivo de Xcode existente de dinámico a estático?

prefiero generar una biblioteca estática, pero si cambio de la [Vinculación | Tipo de Mach-O] campo de "Dynamic Library" a la "biblioteca estática", tanto el Proyecto de limpieza y construcción de proyectos quejan de que las target tiene un valor MACH_O_TYPE no válido de 'staticlib'.

¿Existe una manera directa de obtener la compilación para producir un archivo .a estático?

Gracias,
Eric

Respuesta

4

que acabó creando un nuevo proyecto 'biblioteca estática', y después se añadió todos los miembros. Al cerrar xcode y mostrar los dos archivos de proyecto en , un editor de texto me permitió completar rápidamente el nuevo proyecto.

+2

Desafortunadamente esa es la solución correcta. Actualmente no hay forma de convertir un objetivo de un tipo de destino a otro. – cdespinosa

20

abre el archivo project.pbxproj en YourProjectName.xcodeproj carpeta con TextEdit, búsqueda de ProductType y cambiar su valor de "com.apple.product-dinámico" a "com.apple .product-static "

+9

en mi caso es ** com.apple.product-type.library.dynamic ** que se cambiará a ** com.apple.product-type.library.static **. Tal vez sea una versión diferente de xcode, sugiero crear un nuevo proyecto de lib estática y copiar productType desde allí – pqnet

+0

Para Xcode 9: la biblioteca estática es 'com.apple.product-type.library.static', la biblioteca dinámica es' com.apple .product-type.library.dynamic', framework es 'com.apple.product-type.framework', el paquete genérico es' com.apple.product-type.bundle', el paquete de prueba de unidades es 'com.apple.product- type.bundle.unit-test', la aplicación es 'com.apple.product-type.application', y la herramienta de línea de comandos es' com.apple.product-type.tool'. Hay muchos más, pero estos son de lejos los más comunes – ThatsJustCheesy

Cuestiones relacionadas