2009-08-28 4 views
13

Я работаю с существующим проектом, который создает динамическую библиотеку (API Cocoa).Как изменить существующий целевой объект Xcode от динамического к статическому?

Я предпочел бы генерировать статическую библиотеку, но если изменить [Linking | Тип Mach-O] поле от "Dynamic Library" в "Static Library", как Clean Project и Build Project жалуются, что target имеет недопустимое значение MACH_O_TYPE значение 'staticlib'.

Есть ли простой способ получить сборку для создания статического файла .a?

Спасибо,
Эрик

ответ

4

Я в конечном итоге создать новый проект «статической библиотеки», а затем добавили все членов. Закрывая xcode и создавая два файла проекта в , текстовый редактор позволяет мне быстро завершить новый проект.

+2

К сожалению, это правильное решение. В настоящее время нет способа конвертировать цель из одного целевого типа в другой. – cdespinosa

20

Открывает project.pbxproj файл в YourProjectName.xcodeproj папку с помощью TextEdit, поиск ProductType и изменить его значение с "com.apple.product-динамической" до "com.apple .product-static "

+9

в моем случае это ** com.apple.product-type.library.dynamic **, который должен быть изменен на ** com.apple.product-type.library.static **. Возможно, это другая версия xcode, я предлагаю создать новый статический проект lib и скопировать productType оттуда – pqnet

+0

Для Xcode 9: статическая библиотека - это 'com.apple.product-type.library.static', динамическая библиотека' com.apple .product-type.library.dynamic', framework - это 'com.apple.product-type.framework', общий пакет -' com.apple.product-type.bundle', модульный тестовый комплект - 'com.apple.product- type.bundle.unit-test', приложение - 'com.apple.product-type.application', а инструмент командной строки -' com.apple.product-type.tool'. Их гораздо больше, но они, безусловно, наиболее распространены – ThatsJustCheesy