首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocoapods .podspec找不到包含标头

Cocoapods .podspec找不到包含标头
EN

Stack Overflow用户
提问于 2019-04-25 13:26:18
回答 1查看 410关注 0票数 1

我有一个Objective-C iOS库,它使用并发布了一个第三方静态C库。我的一个Objective-C源文件使用以下命令导入库

代码语言:javascript
复制
#import <teamspeak/public_errors.h>

但是Cocoapods生成的xcode目标无法找到该标头。

这是我的文件夹的简化结构

这是我的.podspec文件

代码语言:javascript
复制
Pod::Spec.new do |spec|
  spec.name             = 'TSKit'
  spec.version          = '0.1.0'
  spec.summary          = 'An iOS TeamSpeak client'

  spec.description      = <<-DESC
  TSKit is a Objective-C wrapper around the C TeamSpeak client library.
                       DESC

  spec.homepage         = 'https://github.com/JanC/TSKit'
  spec.license          = { :type => 'MIT', :file => 'LICENSE' }
  spec.author           = { 'Jan Chaloupecky' => 'jan.chaloupecky@gmail.com' }
  spec.source           = { :git => 'https://github.com/JanC/TSKit.git', :tag => spec.version.to_s }
  
  spec.ios.deployment_target = '8.0'

  spec.frameworks = 'AVFoundation', 'AudioToolbox'

  spec.source_files = 'TSKit/Classes/**/*'
  
  spec.ios.vendored_library = 'TSKit/lib/libts3client.a'
  spec.libraries            = "ts3client", 'c++'

  spec.preserve_paths = 'TSKit/include/**' 
  
  # spec.header_dir          = "TSKit/include"
  # spec.header_mappings_dir = 'TSKit/include'

  spec.pod_target_xcconfig  =  {"HEADER_SEARCH_PATHS" => "$(PODS_ROOT)/#{spec.name}/include/**"}

end

正如您所看到的,我尝试使用spec.header_dirspec.header_mappings_dir,但都没有成功。

pod lib lint失败:

代码语言:javascript
复制
 -> TSKit (0.1.0)
    - ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code. You can use `--verbose` for more information.
    - NOTE  | xcodebuild:  note: Using new build system
    - NOTE  | [iOS] xcodebuild:  note: Planning build
    - NOTE  | [iOS] xcodebuild:  note: Constructing build description
    - NOTE  | [iOS] xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file. (in target 'App')
    - NOTE  | [iOS] xcodebuild:  10:9: fatal error: 'teamspeak/public_errors.h' file not found

你可以在这里找到一个样例项目(一定要检查so-question分支)

https://github.com/JanC/TSKit/tree/so-question

EN

回答 1

Stack Overflow用户

发布于 2019-10-17 04:43:12

spec.header_mappings_dir = 'TSKit/include/**/*.h'应该会导致cocoapods递归地遍历子文件夹teamspeak并找到public_error.h头。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55842342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档