Краткое резюме: как я могу добавить включаемый путь к заголовкам, распространяемым с XCode для .podspec.json
файл?
Я работаю над проектом Swift, где я хочу включить AudioKit в качестве зависимости. Для этого проекта я должен добавить ‘use_frameworks!’ в моем подфиле
Поэтому я добавляю свой Pod в Podfile (основной репозиторий еще не обновлен, поэтому я указываю прямо на репозиторий github)
pod 'AudioKit', :git => 'https://github.com/niklassaers/AudioKit.git'
и добавить в один из моих файлов Swift
import AudioKit
тогда мой компилятор предупредит меня, что CsoundFile.hpp
ссылается iostream
который не может быть найден. iostream.h
в:
/Applications/Xcode62.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/c++/4.2.1/backward/iostream.h
По сравнению с stdlib.h, который находится в:
/Applications/Xcode62.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/stdlib.h
Как я могу добавить этот каталог заголовка к пути поиска в AudioKit.podspec.json
(что я раздвоил).
Я сделал пример проекта, который демонстрирует то, что я написал выше: https://github.com/niklassaers/AudioKitSwiftFrameworkError — Вы можете скачать его и скомпилировать, и вы увидите сообщение об ошибке.
Основная проблема здесь заключается в том, что AudioKit.podspec.json
отсутствует определение публичного заголовка. Таким образом, все заголовки считаются общедоступными, включая заголовки C ++.
Поскольку нет транзитивного импорта из заголовков класса Objective C, он все равно должен работать, если только они объявлены как public:
"public_header_files": [
"AudioKit/Core Classes/**/*.h",
"AudioKit/Instruments/**/*.h",
"AudioKit/Notes/**/*.h",
"AudioKit/Operations/**/*.h",
"AudioKit/Parameters/**/*.h",
"AudioKit/Sequencing/**/*.h",
"AudioKit/Tables/**/*.h",
"AudioKit/Utilities/**/*.h"],
…
"osx": {
…
"public_header_files": ["AudioKit/Platforms/OSX/classes/*.h"]
}
"ios": {
…
"public_header_files": ["AudioKit/Platforms/iOS/classes/*.h"]
}