Я создаю статическую библиотеку MyLibrary
для iOS в Objective-C, которая объединяет дюжину полезных классов, каждый из которых имеет свой собственный файл .h.Я хотел бы распространять MyLibrary
как один скомпилированный двоичный файл, libMyLibrary.a
, и один заголовочный файл .h, MyLibraryAPI.h
.MyLibraryAPI.h
имеет дюжину #import
утверждений, по одному для каждого из дюжины открытых классов MyLibrary
.Разработчики, которые хотят включить MyLibrary
в свои хост-проекты, должны включать только двоичный файл libMyLibrary.a
и заголовок MyLibraryAPI.h
.Это и есть цель.
Итак, я установил Role
каждого открытого класса в проекте MyLibrary
Xcode на Public
и успешно скомпилировал libMyLibrary.a
, используя утилиты компоновки командной строки Xcode и lipo
,Затем я вручную включил все дюжины MyLibrary
заголовочных файлов вместе с libMyLibrary.a
в хост-проект, и хост-проект может без проблем использовать публичные MyLibrary
классы.Круто!
Проблема в том, что если я удаляю эти дюжины заголовочных файлов и вместо них использую MyLibraryAPI.h
(как моя цель), классы хост-проекта больше не смогут найти заголовочные файлы MyLibrary
, на которые есть ссылка в MyLibraryAPI.h
,Вместо этого во время компиляции я получаю сообщения об ошибках: MyAwesomeThingDelegate.h: No such file or directory...
для каждого MyLibrary
класса, который я пытаюсь #import
в MyLibraryAPI.h
.У меня есть папка в корневом каталоге моего хост-проекта с именем lib
, и в настройках сборки хост-проекта для пути поиска рекурсивного заголовка установлено значение lib/**
, а в пути поиска библиотеки - для рекурсивного пути lib/**
.
*.1034 * Мне бы очень хотелось услышать предложения сообщества о том, как правильно задать пути поиска хост-проекта, чтобы мне нужно было только включить
libMyLibrary.a
и
MyLibraryAPI.h
для использования классов
MyLibrary
.Или, если я делаю что-то не так, мне бы хотелось услышать еще одно предложение по достижению моей цели по распространению одного двоичного файла и одного заголовочного файла API.