Получение ошибки «Включение немодульного заголовка в модуль фреймворка» - PullRequest
0 голосов
/ 28 июня 2018

У меня есть личный модуль, написанный поверх CommonCrypto , который явно использует CommonCrypto. Заголовки имеют типы, объявленные CommonCrypto, например:

#include <CommonCrypto/CommonDigest.h>

typedef CC_SHA256_CTX qwer_digest_evp;

Поскольку в CommonCrypto объявлено CC_SHA256_CTX, я не могу просто переместить импорт заголовка в файл реализации.

Я использую cocoapods, чтобы интегрировать этот модуль в свой проект, и попробовал описанную ниже процедуру установки, но она не работала (выбрано из SO ).

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      target.build_settings(config.name)['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES'
    end
  end
end

1 Ответ

0 голосов
/ 03 июля 2018

Эффективным вариантом может быть создание версии модуля CommonCrypto (возможно, с добавленной магией CocoaPods). Это можно сделать, выполнив шаги в ответе на Импорт CommonCrypto в среде Swift . Решение работает так же хорошо с Objective-C или C в вашем проекте XCode.

Цитировать ответ:

Я добавил магию CocoaPods к ответу jjrscott на случай, если вам понадобится CommonCrypto в вашей библиотеке CocoaPods.

...