Ste*_*Kuo 5 ios cocoapods swift
我有本地构建的 C 库(.h和.a文件),我想将其包含在基于 Swift 的 CocoaPods pod 中。如何配置 podspec 以依赖于.a文件和module.map?对于普通的非 CocoaPods Xcode 项目,我只需将其拖入包含的目录include,lib然后添加一个module.map. 使用 CocoaPods 我无法执行此操作,因为pod install会覆盖 Xcode 项目文件。s.library不起作用,因为静态库没有托管在任何地方。我尝试过s.vendored_libraries,但module.mapXcode 仍然未知,最终结果是import foo我的 Swift 文件出现错误。
编辑:我尝试使用preserve_paths,vendored_libraries并xcconfig如此处回答。问题仍然是如何从 Swift 导入模块。
编辑 2:我还尝试使用module_map指向我的module.map文件(如此处记录),但遗憾的是 CocoaPods 1.1.1 崩溃了 ( [!] Oh no, an error occurred.)。
我成功了。就我而言,我依赖于使用https://github.com/ashtons/libtiff-ios为 iOS(x86 和 arm)预构建的 libtiff C 库。
我在这里使用了一个子规格作为大纲。这是 podspec subspec 片段,假设静态库位于libtiffpod 模块的根目录下。
s.subspec 'libtiff' do |libtiff|
libtiff.source_files = 'libtiff/include/*.h'
libtiff.public_header_files = 'libtiff/include/*.h'
libtiff.preserve_paths = 'libtiff/include/*.h'
libtiff.vendored_libraries = 'libtiff/lib/libjpeg.a', 'libtiff/lib/libpng.a', 'libtiff/lib/libtiff.a', 'libtiff/lib/libtiffxx.a'
libtiff.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/libtiff/include/**" }
# you can't specify "libz" here, must specify "z", see https://github.com/CocoaPods/CocoaPods/issues/3232
libtiff.library = 'z'
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1782 次 |
| 最近记录: |