Podspec Шаблон включает заголовочные файлы, которые не перечислены в исходных файлах - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь создать Cocoapod. Но когда я запускаю pod lib lint, я получаю следующую ошибку:

MyCoolProject (1.0.0)
    - ERROR | [iOS] public_header_files: The pattern includes header files that are not listed in source_files 

Затем в нем перечислены все мои .h файлы. (Некоторые для краткости сняты)

/Users/myusername/Documents/GitHub/MyCoolProject/Pod/Classes/Objective-C/MyCoolProject.h,
/Users/myusername/Documents/GitHub/MyCoolProject/Pod/Classes/Objective-C/MyCoolProjectConstants.h,
/Users/myusername/Documents/GitHub/MyCoolProject/Pod/Classes/Objective-C/MyCoolProjectEnums.h,
/Users/myusername/Documents/GitHub/MyCoolProject/Pod/Classes/Objective-C/MyCoolProjectMacros.h,
/Users/myusername/Documents/GitHub/MyCoolProject/Pod/Classes/Objective-C/MyCoolProject_.h,
/Users/myusername/Documents/GitHub/MyCoolProject/Pod/Classes/Objective-C/UIView+MyCoolProjectPrivate.h, 
/Users/myusername/Documents/GitHub/MyCoolProject/Pod/Classes/Objective-C/UIViewController+MyCoolProject.h

Я потратил 2 дня и нашел 0 информации, которая помогает мне понять и исправить ошибку. Может кто-нибудь пролить свет на то, что я могу делать неправильно?

Вот мой файл подспека

Pod::Spec.new do |s|
  s.name                = "MyCoolProject"
  s.version             = "1.0.0"
  s.summary             = "Color Framework for iOS (Obj-C & Swift)"
  s.homepage            = "https://github.com/myusername/MyCoolProject"

  s.license             = { :type => "MIT", :file => "LICENSE.md" }
  s.author              = "My Name"

  s.platform            = :ios
  s.ios.deployment_target = '8.0'
  s.source              = { :git => "https://github.com/myusername/MyCoolProject.git", 
                            :tag => s.version.to_s }

  s.public_header_files = 'Pod/Classes/Objective-C/**/*.h'
  s.frameworks   = 'UIKit', 'QuartzCore', 'CoreGraphics'

  s.default_subspecs = 'Default'

  s.subspec 'Default' do |ss|
    ss.source_files = 'Pod/Classes/Objective-C/**/*.{h,m}'
  end

  s.subspec 'Swift' do |ss|
      ss.ios.deployment_target = '8.0'
      ss.source_files = 'Pod/Classes/Swift/MyCoolProjectShorthand.swift'
      ss.dependency 'MyCoolProject/Default'
  end
end

Как вы можете видеть из моего скриншота, все файлы там:

enter image description here

1 Ответ

0 голосов
/ 27 октября 2018

Имеет ли смысл изменение объявления public_header_files в подспецифику Default? Или перемещение source_files во внешнюю область?

Я подозреваю, что CocoaPods проверяет файлы на предмет Swift подспека, прежде чем обрабатывает свои зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...