1

快速总结:如何将包含路径添加到与 Xcode 一起分发到.podspec.json文件的标头?

我正在开发一个 Swift 项目,我想将 AudioKit 作为依赖项包含在内。对于这个项目,我必须添加“use_frameworks!” 在我的 Podfile

所以我在 Podfile 中添加了我的 Pod(main 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/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 - 你可以下载并编译它,你会看到错误消息。

4

1 回答 1

6

这里的主要问题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"]
}
于 2015-04-09T07:59:05.547 回答