Включение немодульного заголовка в структуру ошибки - PullRequest
0 голосов
/ 13 мая 2018

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

Я создаю фреймворковый проект (Obj-c), в котором используется другая сторонняя фреймворк. В зонтичном заголовке MyFramework у меня есть оператор импорта стороннего фреймворка. Когда я упаковал свой фреймворк и включил его в другой проект iOS, он не может быть собран с этой ошибкой.

То, что я пытался:

  • Включено «Разрешить немодульные включения в модули Framework»
  • Добавлен зонтичный заголовок стороннего фреймворка в качестве "публичного" заголовка

Пожалуйста, сообщите, чего здесь не хватает. Заранее спасибо!

Вот точная ошибка:

Включение немодульного заголовка внутри модуля фреймворка 'MyFramework.TestManager': «/TestApp/WindowsAzureMessaging.framework/Headers/WindowsAzureMessaging.h'

Кроме того, по пути он выглядит так, будто пытается найти его в проекте TestApp, тогда как он должен ссылаться на Framework.

Я импортировал Azure Messaging Framework в заголовок Umbrella, как показано ниже:

#import <WindowsAzureMessaging/WindowsAzureMessaging.h>

1 Ответ

0 голосов
/ 15 мая 2018

Мне удалось воспроизвести вашу ошибку. Я похож на заголовок WindowsAzureMessaging , и все остальные заголовки, на которые он ссылается, не предназначены для использования в заголовке модульного фреймворка, потому что он использует импорт «пользователя» вместо «системного» импорта относительно фреймворка, и также у него нет файла modulemap.

У вас есть несколько вариантов:

  1. Адаптируйте их код и создайте его как модуль (сделайте его "модульным").
  2. не включайте его в заголовок зонтика (избегайте ссылок на него), но связывайте его и используйте непосредственно в приложении и вашей среде.
  3. вместо того, чтобы использовать файловую среду как отдельную сущность, вы можете взять (скопировать) их исходный код (файлы m и h) и скомпилировать в свою среду, а затем выставить некоторые заголовки в качестве собственных заголовков.

Я думаю, что вариант 1 - верный путь. Это не сложно, и если вам удастся это сделать, подумайте о том, чтобы сделать запрос на их репо, потому что это пойдет на пользу всем.

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