Создание одной статической библиотеки для iOS и симулятора для распространения - PullRequest
7 голосов
/ 02 декабря 2010

Если вы создаете статическую библиотеку для iOS, нужно ли вам распространять заголовочные файлы вместе с ней или есть другой способ заставить ее работать?

В настоящее время у меня есть один файл my_lib.a для устройства и симулятора, но когда я перетаскиваю его в другое тестовое приложение, чтобы использовать его, он говорит, что не может найти заголовок, и что во всех местах, где я его использую код не объявлен. Поэтому я полагаю, что я либо делаю что-то не так, либо мне нужно также отправить соответствующие файлы заголовков вместе с ним.

Предыстория моего процесса:

Я видел два руководства по созданию статической библиотеки для устройства и симулятора. Один на этом сайте: Создание статической статической библиотеки (устройство + симулятор) с использованием Xcode и SDK 4 +

и один здесь: http://mark.aufflick.com/blog/2010/11/19/making-a-fat-static-library-for-ios-device-and-simulator

Я использовал второй сайт, чтобы просто попробовать. Мне также немного любопытно, правильно ли я это сделал. Я просто зашел в папки Release-iphone (os | simulator) и нашел .a в ios и .o в симуляторе.

Ответы [ 2 ]

3 голосов
/ 02 декабря 2010

Короткий ответ: да, вы должны упаковать файлы заголовков со своей статической библиотекой.Вы должны упаковать заголовочные файлы с любой библиотекой, динамической или статической.Сама библиотека содержит скомпилированный код, но вы все равно должны сообщить компилятору об идентификаторах в библиотеке, поэтому, когда она компилирует ваш код, она знает, что они существуют.

Если вам не все равно, вы можете упаковать свою статическую библиотеку в статическую среду с небольшой осторожностью.Вы просто создаете ту же структуру каталогов, что и динамическая структура, с вашим файлом .a вместо файла .dylib (или .so).Фреймворки содержат каталог для заголовков, так что вы можете распределять двоичные файлы и заголовки как один пакет, и вы можете легко импортировать заголовки из фреймворка, не вмешиваясь в параметр сборки Дополнительные пути поиска заголовков.

0 голосов
/ 12 марта 2015

На всякий случай это полезно - я следовал инструкциям Рэя Вендерлиха из здесь и смог создать фреймворк для iOS, поддерживающий несколько архитектур одновременно (включая симулятор). Инструкции слишком длинные, чтобы просто скопировать их сюда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...