Получение ошибки Включение немодульного заголовка внутри модуля фреймворка

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

#include <CommonCrypto/CommonDigest.h>

typedef CC_SHA256_CTX qwer_digest_evp;

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

Я использую 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

person Ayush Goel    schedule 28.06.2018    source источник


Ответы (1)


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

Чтобы процитировать ответ:

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

person jjrscott    schedule 03.07.2018