Если вы разрабатываете свой собственный фреймворк:
Почему это происходит?
Если в каком-либо из общедоступных файлов заголовков, которые вы упомянули в своем module.modulemap, есть операторы импорта, которые не упомянуты в modulemap, это приведет к ошибке. Поскольку он пытается импортировать какой-либо заголовок, который не объявлен как модульный (в module.modulemap), он нарушает модульность фреймворка.
КАК я могу это исправить?
Просто включите заголовок, который вызвал ошибку, в ваш module.modulemap и выполните сборку снова!
ПОЧЕМУ НЕ просто установите allow non-modular на YES?
Поскольку на самом деле это не совсем решение, вы говорите своему проекту: «Этот фреймворк должен был быть модульным, но это не так. Используйте его как-нибудь, мне все равно». Это не решает проблему модульности вашей библиотеки.
Для получения дополнительной информации проверьте это сообщение в блоге или обратитесь к документации clang .
ifaddrs, они привязаны к импорту ifaddrs.h.