Как я могу создать статическую библиотеку и могу добавить просто.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 статическая библиотека
Потребитель 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;