Как преобразовать проект 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 в другой проект. В другом проекте вам нужно снова добавить связанную структуру.

Я успешно использовал этот метод для своей работы.