快速摘要:如何将包含Xcode的标头的包含路径添加到.podspec.json
文件?
我正在开发一个Swift项目,我希望将AudioKit作为依赖项。对于这个项目,我必须添加' use_frameworks!'在我的Podfile中
所以我在Pod文件中添加了我的Pod(主要的repo还没有更新,这就是我直接指向github repo的原因)
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 /后退/ 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 - 您可以下载并编译它,然后您就会看到错误消息。
答案 0 :(得分:5)
这里的主要问题是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"]
}