Краткое резюме: как добавить добавленный путь к заголовкам, распространяемым с Xcode, в файл .podspec.json
?Спецификация Cocoapods, которая использует C++ и компилирует в качестве рамки
Я работаю над проектом Swift, в котором хочу включить AudioKit в качестве зависимости. Для этого проекта я должен добавить 'use_frameworks!' в моем Podfile
Так что я добавить свой стручок в 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 - вы можете скачать его и скомпилировать, и вы увидите сообщение об ошибке.
Я не смотрел в эту библиотеку, но вы не можете получить доступ к C++ непосредственно из Swift. Как отмечено [здесь] (https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/index.html) –
Я не получаю доступ непосредственно к C++, я включаю зависимость Cococapods который написан в Objective-C и содержит компонент C++ в моем проекте Swift. И поскольку я хочу использовать другую зависимость, написанную в Swift, я должен использовать «use_frameworks!». директива – niklassaers
Импортируя фреймворк, который использует C++ в своих заголовках, вы используете C++ непосредственно в Swift. Вы также можете увидеть этот факт, внимательно посмотрев на ошибку компилятора, которую генерирует ваш пример, и говорит «Swift Compiler Error» прямо в навигаторе проблем. – NeoNacho