Как преобразовать проект Xcode в статическую библиотеку или структуру?
У меня есть проект, который мне нужно импортировать в другой проект в качестве рамки, точно так же, как мы импортируем структуру Coredata, Quartzcore и т.д. Как это сделать? Как скомпилировать мой проект в библиотеку или структуру, которые можно импортировать в другие проекты? Пожалуйста, объясните шаги.
Спасибо заранее.
Ответы
Ответ 1
https://github.com/jverkoey/iOS-Framework попробуйте эту ссылку для создания фреймворка и пакета ресурсов. Найдите изображения, xibs и другие ресурсы, которые вы использовали в ваш проект в пучок и скопируйте свои классы в проект Cocoa Touch Static Library.
Ответ 2
Если вы хотите скомпилировать "стандартную" структуру, такую как UIKit.framework, попробуйте Universal Framework iPhone iOS
еще
- Создайте новый проект под названием "TestPlugin" и выберите тип "Cocoa touch Static Library". Здесь у вас будет цель "TestPlugin.a".
- Добавить новую цель. В левом углу настройки проекта имя: "Добавить цель". Выберите "Bundle" в "Framework и Library" в "OS X". Это ваша вторая цель с именем "TestPluginBundle.bundle".
- В настройке TestPlugin.a "Build Phrases" добавьте новую "Target Denpendencies". Сначала создается файл .bundle, а затем файл .a.
- Скопируйте и добавьте весь файл проекта "Оригинал" (исключая файл main.m и файл .xcodeproj) в проект TestPlugin.
- В настройке TestPluginBundle "Build Phases" добавьте весь файл .xib.png(возможно .jpg) в "Скомпилировать источники". Добавьте пространственный ресурс (например,.wav,.gif и .html) в "Копировать ресурсы Bundle".
-
Замените весь код, загружающий ресурс из основного пакета, для загрузки ресурса из TestPluginBundle. Возможно, вы хотите добавить категорию для UIImage, потому что хотите использовать imageNamed:
, чтобы вы могли использовать [UIImage testPluginImageNamed:@"small.png"]
. Легко выполнить замену в проекте и добавить связанный файл заголовка. Возьмите файл .xib. Например:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
//self = [super initWithNibName:nibNameOrNil bundle:[NSBundle mainBundle]];
// you need to define a method to get the bundle 'TestPluginBundle.bundle', here I used '[TestPlugin TestPluginBundle]'
self = [super initWithNibName:nibNameOrNil bundle:[TestPlugin TestPluginBundle]];
...
}
-
После этого добавьте файл .a и .bundle в другой проект. В другом проекте вам нужно снова добавить связанную структуру.
Я успешно использовал этот метод для своей работы.