Как создать статическую библиотеку и добавить файл .a в любой проект в ios.
Я попытался сделать это, но не смог этого сделать.
Заранее спасибо
Как создать статическую библиотеку и добавить файл .a в любой проект в ios.
Я попытался сделать это, но не смог этого сделать.
Заранее спасибо
если вы хотите создать static lib mean, обратитесь к ссылке 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: Создать новую цель
Создать новую цель из меню файлов.
Новая цель Выберите Cocoa Touch Static Library
Шаг 5: добавление файлов для компиляции ресурсов
Выберите "Логгер" Цель статической библиотеки Перейти к этапам сборки В разделе "Собранные источники" добавьте все файлы .m и .mm. В разделе "Копировать файлы" добавьте все файлы .h и файлы ресурсов.
Фазы сборки
Шаг 6. Компиляция проекта с целью статической библиотеки
Скомпилировать проект для устройства iOS Компилировать проект для симулятора Вы можете найти два разных файла .a, сгенерированных в папках сборки.
Найти .a файл
Шаг 7. Создание универсальной универсальной библиотеки
Теперь вы можете найти две разные библиотеки: один для симулятора и один для устройств iOS.
Создайте новую папку и назовите ее LoggerMerge.
Скопируйте libLogger.a
файл папки Debug-iphoneos в "LoggerMerge", переименуйте его в libLogger_device.a
Скопируйте libLogger.a
файл папки Debug-iphonesimulator в "LoggerMerge", переименуйте его в libLogger_simulator.a
Открыть папку LoggerMerge с помощью терминала
Огонь ниже команды
lipo-create "libLogger_simulator.a
" "libLogger_device.a
" -output "libLogger.a
"
Теперь вы можете найти libLogger.a в папке LoggerMerge, это универсальный файл статической библиотеки. Теперь вам нужно только одно: заголовки, см. Выше скриншот, есть папка, которая называется include в обеих папках сборки. Просто скопируйте файл заголовка из этой папки.
Шаг 8: Проверка статической библиотеки
Создайте новый проект, назовите его TestLogger
Импортировать файлы libLogger.a
и заголовочные файлы
Импортировать файл заголовка "Logger.h
" в любом месте, которое вы хотите использовать.
Теперь используйте этот класс Logger в качестве практики по умолчанию.
В нашем случае [Logger log: @ "Test String" ];
Запустить проект в Simulator и Device как
Это!! У вас есть собственная статическая библиотека!
Шаг 1: Запуск проекта новой статической библиотеки
Откройте XCode и запустите новый проект. В разделе iOS выберите "Библиотека" и "Cocoa Touch Static Library", скажем, как "staticlibrary". Это создаст для нас новый новый проект, который создает файл .a
.
Шаг 2: Введите свою статическую библиотеку Сначала нам нужно добавить некоторые файлы. Добавьте новый подкласс NSObject к вашему проекту и назовите его StaticClass. Затем напишите полезный код в этих файлах.
Шаг 3: Создание и распространение вашей библиотеки
Как только вы довольны своей библиотекой, просто создайте ее в XCode. Очевидно, что не создавайте и запускайте, поскольку вы не можете запустить его (опять же, если у вас нет набора тестов). Теперь посмотрите в группе "Продукты" в XCode, и вы должны увидеть файл lib (libraryName).a. В нашем случае его libstaticlibrary.a
.
Щелкните правой кнопкой мыши на этом файле и выберите "Reveal In Finder". Перетащите этот файл в новую папку, которую вы создаете, где вы будете связывать все файлы вашей библиотеки. Теперь сделайте то же самое со всеми файлами .h. В нашем случае просто скопируйте StaticClass.h
в этот новый каталог. Структура вашего каталога теперь должна выглядеть так:
FolderName
|- libstaticlibrary.a
|- StaticClass.h
Теперь вы можете закрепить эту папку и продать ее потенциальным разработчикам iOS для миллионов!
Шаг 4: Связывание библиотеки в новом проекте Итак, теперь, когда вы создали свою блестящую новую статическую библиотеку, пришло время ее протестировать в другом приложении.
Создайте новый проект на основе View (или независимо от того, что это действительно имеет значение). Назовите его как тест.
Теперь просто перетащите эту папку в проект, и XCode автоматически установит все ссылки. Когда будет предложено копировать, я обычно говорю "да", но вы можете делать все, что хотите, в зависимости от того, как вы собираетесь использовать библиотеку. Иногда просто связывание и не копирование гораздо более выгодно, если у вас есть несколько проектов, совместно использующих одну библиотеку. Это гарантирует, что все они используют самую последнюю версию.
Теперь вы должны увидеть файл .a
вместе с файлами заголовков в новом проекте.
Шаг 5: Использование кода статической библиотеки
Теперь, когда все ссылки настроены, вы просто используете свою библиотеку, как и любой другой класс.
Для дальнейших разъяснений http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial надеюсь, что этот учебник поможет вам.
Версия Xcode 10.2.1
Создать проект библиотеки или создать целевой объект библиотеки
File -> New -> Project... -> Cocoa Touch Static Library
//or
Project editor -> Add a Target -> Cocoa Touch Static Library
Создать файл module.modulemap
[About]
module module_name {
umbrella header "module_name-umbrella.h"
export *
}
Создайте файл module_name-umbrella.h
[About] и добавьте все файлы .h
, которые будут открыты для потребителя
#import "header_1.h"
#import "header_2.h"
Добавьте файлы module.modulemap
и module_name-umbrella.h
в раздел Copy Files
[About]
Project editor -> select a target -> Build Phases -> Copy Files -> add 'module.modulemap', 'module_name-umbrella.h'
Добавить файлы реализации .m
Select '.m' file -> Select File Inspectors Tab -> Target Membership -> Select the target
//or
Project editor -> select a target -> Build Phases -> Compile Sources -> add files
Добавить файлы заголовков .h
, которые были перечислены в module_name-umbrella.h
(header_1.h
, header_2.h
)[can not do it] [public target membership]
Select '.h' file -> Select File Inspectors Tab -> Target Membership -> Select the target and make it **public**
//or
Project editor -> select a target -> Build Phases -> Headers -> add files to the **public** zone
Сборка библиотеки - ⌘ Command + B или Product -> Build
Примечание. Убедитесь, что вы создали библиотеку для той же архитектуры процессов, что и код клиента.
Найти сгенерированный вывод[Build location]
Products group -> lib<product_name>.a -> Show in Finder
Каталог включает в себя
lib<product_name>.a
- встроенная статическая библиотекаinclude/<product_name>
с файлами из секции Copy Files
usr/local/include
с файлами из секции Headers
. Есть открытые интерфейсы/определенияDrag and drop
двоичный файл в проект Xcode[About]
Link Library
[Undefined symbols] [Link vs Embed]
Project editor -> select a target -> General -> Linked Frameworks and Libraries -> add -> Add Others... -> point to 'lib<product_name>.a' file
//or
Project editor -> select a target -> Build Phases -> Link Binary With Libraries -> add -> Add Others... -> point to 'lib<product_name>.a' file
Добавить Library Search paths
[Library not found for] [Recursive path]
Project editor -> select a target -> Build Settings -> Search Paths -> Library Search paths -> add path to the parent of 'lib<product_name>.a' file
Добавить Header Search Paths
[Module not found] [Recursive path]
Project editor -> select a target -> Build Settings -> Search Paths -> Header Search Paths -> add path to generated 'include/<product_name>' folder with 'module.modulemap' and '<product_name>-umbrella.h'
Импортировать модуль в код клиента Objective C[module_name]
@import module_name;