Podspec:未找到前缀导入

时间:2015-03-03 12:15:51

标签: ios objective-c xcode cocoapods podspec

我的项目正在建设中。当我运行pod spec lint时,我收到以下错误:

 - ERROR | [MyApp/Core] [xcodebuild]  Target Support Files/Pods-MyApp/Pods-MyApp-prefix.pch:6:9: fatal error: 'MyConstants.h' file not found

值得注意的是常量文件的位置:Project/Classes/MyConstants.h。这是我的podspec

Pod::Spec.new do |spec|
  spec.name         = "AppName"
  spec.version      = "1.0"
  spec.summary      = "blah blah"
  spec.homepage     = "http://company.com/"
  spec.license      = 'Apache 2.0'
  spec.author       = { "me" => "me@company.com" }
  spec.source       = { :git => 'ssh://path', :tag => '1.0'}

  spec.requires_arc = true
  spec.ios.deployment_target = '7.0'
  spec.frameworks   = ['Foundation', 'UIKit', 'CoreGraphics', 'QuartzCore']

  spec.source_files = 'Classes/**.*', 'Classes/ViewControllers/**.*', 'Classes/Views/**.*'

  spec.prefix_header_contents = '#import "MyConstants.h"'

  spec.subspec 'Core' do |cs|
    cs.dependency 'libextobjc', '~> 0.4'
  end

end

我也尝试过换行:

spec.prefix_header_contents = '#import "MyConstants.h"'

使用:

spec.prefix_header_file = 'MyApp/MyApp-Prefix.pch'

但结果是一样的。如何启用前缀以查看源代码?

---编辑---

我最终重构了所有源文件。我已经导入了手动需要的类,而没有使用前缀。因此,这个问题对我来说不再重要了。

2 个答案:

答案 0 :(得分:0)

spec.prefix_header_contents = '#import "MyConstants.h"' 您指定了一个代码行,以插入.pch文件,该文件由pod在安装过程中创建。如果您收到此错误,那是因为文件MyConstants.h丢失了。

修改 如果您的MyConstants.h文件是主要项目来源,则无法通过Pod访问该文件。

答案 1 :(得分:0)

我有同样的问题。最后,我在ss.public_header_files添加了subspec。它更像是一个为我工作的工作(我不称之为解决方案)。根据文件:

public_header_files

 A list of file patterns that should be used as public headers.    
These are the headers that will be exposed to the user’s project
and from which documentation will be generated. If no public
headers are   specified then all the headers are considered public.


也许它不完全准确。

修改
我的解决方案并不完全正确。当我使用pod lib lint运行验证时,当我使用spec选项验证它时,它已成功构建我再次收到相同的错误。我最终将问题写入cocaoPods团队。 .pch wont recognise included files