Xcode не может найти заголовочный файл

Я пытаюсь создать основу для своего проекта. В мою инфраструктуру я добавил путь к моим файлам заголовков, чтобы указать путь > Настройки сборки > путь к заголовку. После этого я добавил эту фреймворк в свой проект с помощью функций Build Phases > Link Binary With Libraries.

Когда я хочу импортировать заголовочный файл, который я включил в свою фреймворк, я получаю ошибку .h file, не найденную. Это то, что я пытаюсь сделать возможным? Или я что-то пропустил?

Я создал такую ​​структуру:

Открытый новый проект как iOS > Framework & Library > Cocoa Touch Framework Я не добавлял никакого класса, я просто добавил путь поиска заголовка и путь поиска библиотеки и флаги компоновщика. Я не думаю, что сделал ошибку в этой части, потому что мы делаем это в каждом проекте, но в первый раз я делаю это для фреймворка. Затем я нажал run и получаю свою фреймворк из продуктов.

Я открыл свой проект и добавил фреймворк Build Phases > Link Binary With Libraries. Я могу импортировать заголовочный файл фреймворка, например #import <myframework/framework.h> После этого я добавил фреймворк и General > Embedded Binaries. Все выглядит нормально, но я не могу добавить заголовки в свой проект, который я включил в свою инфраструктуру с помощью пути поиска заголовков. Я должен использовать путь поиска заголовка, потому что есть тонны заголовков, я не могу добавить их все в свой Xcode.

Ответ 1

Удостоверьтесь, что все публичные заголовки отображаются в разделе Public Section else. Перетащите файл .h в общедоступный введите описание изображения здесь

Ответ 2

Все выглядит нормально, но я не могу добавить заголовки в свой проект, который я включил в свою структуру с помощью пути поиска заголовков.

Звучит так, как будто вы ожидаете, что все заголовки, которые могут быть найдены на пути, указанном в вашем пути поиска заголовка, станут частью вашей структуры, так что если в вашем пути поиска заголовок с именем SomeHeader.h, это будет встроена в вашу структуру, и вы сможете импортировать ее в клиентские проекты, например:

#import <MyFramework/SomeHeader.h>

Но это совсем не так. Если вы хотите, чтобы ваша инфраструктура предоставляла SomeHeader.h, вам нужно добавить этот файл в проект, и, как уже указывал Мегс Дхамелия, вам нужно указать SomeHeader.h в разделе "Публичные заголовки" фазы сборки заголовков. Это заставит Xcode скопировать заголовочный файл в структуру, чтобы клиенты фреймворка могли импортировать заголовочный файл. Не понятно, что то, что вы действительно хотите, хотя... в комментариях вы написали:

В другом пути много заголовков. К сожалению, я должен использовать путь поиска заголовка. Тип компании.

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