Как я могу создать статическую библиотеку и могу добавить просто.a файл на любой проект в IOS

Как я могу создать статическую библиотеку и можно просто добавить.a файл на любой проект в IOS.

Я пытался сделать это, но не смог.

заранее спасибо

2 ответа

Если вы хотите создать статическую библиотеку, обратитесь по ссылке http://jaym2503.blogspot.in/2013/01/how-to-make-universal-static-library.html

Шаг 1: Создайте новый проект с именем "Logger"

Шаг 2. Создание классов

Вы можете создать столько классов, сколько захотите. В нашем уроке мы создадим один класс с именем "Logger". Итак, теперь два файла должны быть на нашем ресурсе. 1. Logger.h 2. Logger.m

Шаг 3: Поместите некоторый полезный код в классы

Шаг 4: Создать новую цель

Создать новую цель из меню "Файл".

Новая целевая библиотека "Выбор какао"

Шаг 5: Добавьте файлы в Compile Resource

Выберите "Logger" Цель статической библиотеки. Перейдите к разделу "Фазы сборки" в разделе "Соблюдаемые источники", добавьте все файлы.m и.mm. В разделе "Копирование файлов" добавьте все файлы.h и файлы ресурсов.

Этапы сборки

Шаг 6. Компиляция проекта с использованием статической библиотеки.

Компиляция проекта для iOS Device Compile Project для симулятора Вы можете найти два разных.a файла, сгенерированных в папках сборки.

Найти.a файл

Шаг 7: сделать статическую библиотеку универсальной

Теперь вы можете найти две разные библиотеки, одну для симулятора и одну для устройств iOS.

Создайте новую папку и назовите ее LoggerMerge. копия libLogger.a файл папки Debug-iphoneos в "LoggerMerge" переименуйте его в libLogger_device.a Копировать libLogger.a файл папки Debug-iphonesimulator в "LoggerMerge" переименуйте его в libLogger_simulator.a Откройте папку LoggerMerge с помощью Terminal Fire под командой lipo -create "libLogger_simulator.a""libLogger_device.a" -выход "libLogger.a"

Теперь вы можете найти libLogger.a в папке LoggerMerge, это файл универсальной статической библиотеки. Теперь, только одна вещь, которая вам нужна, это заголовки. Смотрите на скриншоте выше, там есть папка include в обеих сборочных папках. Просто скопируйте заголовочный файл из этой папки.

Шаг 8: Проверка статической библиотеки

Создать новый проект, назовите его TestLogger Import libLogger.a и заголовочные файлы Импортировать заголовочный файл "Logger.h"везде, где вы хотите использовать сейчас, используйте этот класс Logger в качестве практики по умолчанию. В нашем случае, [Logger log:@"Test String"]; Запустите Project в Simulator и Device оба! Вот и все! У вас есть собственная статическая библиотека!!

Шаг 1: Запуск нового проекта статической библиотеки

Откройте XCode и начните новый проект. Под iOS выберите "Библиотека", а "Статическая библиотека Cocoa Touch" - "staticlibrary". Это создаст хороший новый проект для нас, который создает .a файл.

Шаг 2. Код вашей статической библиотеки. Сначала нам нужно добавить несколько файлов. Добавьте новый подкласс NSObject в свой проект и назовите его StaticClass. Затем напишите в них полезный код.

Шаг 3: Построение и распространение вашей библиотеки Если вы довольны своей библиотекой, просто создайте ее в XCode. Очевидно, что не делайте сборку и запуск, так как вы не можете запустить его (опять же, если у вас нет набора тестов). Теперь загляните в группу "Продукты" в XCode и вы увидите файл с именем lib(libraryName).a. В нашем случае это libstaticlibrary.a,

Щелкните правой кнопкой мыши по этому файлу и выберите "Показать в Finder". Перетащите этот файл в новую папку, которую вы создадите, где вы будете связывать все ваши файлы библиотеки. Теперь сделайте то же самое со всеми файлами.h. В нашем случае просто скопируйте StaticClass.h в этот новый каталог. Ваша структура каталогов теперь должна выглядеть так:

FolderName
|- libstaticlibrary.a
|-  StaticClass.h

Теперь вы можете заархивировать эту папку и продать ее потенциальным разработчикам iOS за миллионы!

Шаг 4. Связывание вашей библиотеки в новом проекте. Теперь, когда вы создали новую блестящую статическую библиотеку, пришло время протестировать ее в другом приложении.

Создайте новый проект на основе представления (или что-то еще, что не имеет значения). Назовите это как Тест.

Теперь просто перетащите эту папку в проект, и XCode автоматически установит все ссылки. Когда мне предлагают скопировать, я обычно говорю "да", но вы можете делать все, что захотите, в зависимости от того, как вы собираетесь использовать библиотеку. Иногда просто связывать, а не копировать, гораздо выгоднее, если у вас есть несколько проектов, совместно использующих одну библиотеку. Это гарантирует, что все они используют самую последнюю версию.

Теперь вы должны увидеть .a файл вместе с заголовочными файлами в новом проекте.

Шаг 5: Использование статического кода библиотеки

Теперь, когда все ссылки настроены, вы просто используете свою библиотеку, как и любой другой класс.

Для дальнейших разъяснений http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial надеюсь, что это руководство поможет вам.

Objective-C потребитель -> Objective-C статическая библиотека

Версия Xcode 10.2.1

Создайте статическую библиотеку Objective-C или создайте статическую библиотеку Objective-C Target

Создать проект библиотеки

File -> New -> Project... -> Cocoa Touch Static Library -> Enter necessary information and choose Language -> Objective-C

Создайте module.modulemap файл

module module_name {
    umbrella header "module_name-umbrella.h"
    export *
}

добавлять .h файлы в module_name-umbrella.h это будет открыто для потребителя

#import "header_1.h"
#import "header_2.h"

Добавление файлов копирования Фаза сборки

Project editor -> select a target -> Build Phases -> Copy Files -> add `module.modulemap`, `module_name-umbrella.h` 

Добавить заголовки

Project editor -> select a target -> Build Phases -> Headers(If it doesn't exist -> + at the top -> New Headers Phase) -> add all `.h` files from `module_name-umbrella.h`(`header_1.h`, `header_2.h`)

Сборка библиотеки

Примечание. Убедитесь, что вы создали библиотеку для той же архитектуры процессов, что и код клиента.

Найти сгенерированный вывод

Products group -> lib<module_name>.a -> Show in Finder

Примечание: по умолчанию он будет находиться в подпапке DerivedData папка (ее можно изменить, если удалить DerivedData в процессе разработки и перестроить его заново).

В каталог входят

  • lib<module_name>.a - встроенная статическая библиотека
  • module.modulemap файл
  • module_name-umbrella.h файл
  • usr/local/include папка, которая включает .h файлы из module_name-umbrella.h - открытые интерфейсы / определения

Использование статической библиотеки Objective-C

Link Binary With Libraries

Project editor -> select a target -> Build Phases -> Link Binary With Libraries -> add -> Add Others... -> point to `lib<module_name>.a` file

добавлять Library Search paths

Project editor -> select a target -> Build Settings -> Search Paths -> Library Search paths -> add path to the parent of `lib<module_name>.a` file

добавлять Header Search Paths

Project editor -> select a target -> Build Settings -> Search Paths -> Header Search Paths -> add path to generated `include` folder (or a path to the parent of generated `module_name` folder with `.h` files)
  • Когда вы установите path Вы можете определить путь к одной из родительских папок и установить recursive (/** будет добавлен в конец пути). Например, вы можете осквернить path в Build каталог с recursive параметр.
  • Если patch содержит пробелы - , вы должны избежать их, используя \ или заключите путь в двойные кавычки ""

Модуль импорта в клиентский код Objective-C

@import module_name;

Swift customer -> Swift статическая библиотека

Swift consumer -> Objective-C статическая библиотека

Потребитель Objective-C -> Swift статическая библиотека

Потребитель Objective-C -> Статическая библиотека Objective-C

Xcode версии 10.2.1

Создать статическую библиотеку Objective-C

следить Create Objective-C static library

Потребитель Objective-C со статической библиотекой Objective-C

следить Swift consumer with Objective-C static library

Импортировать модуль в клиентский код Objective-C [имя_модуля]

@import module_name;

Больше примеров здесь

Другие вопросы по тегам