2015-03-03 2 views
1

Мой проект строится нормально. Когда я бегу 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" => "[email protected]" } 
    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' 

Но результат тот же. Что делать, чтобы включить префикс для просмотра исходного кода?

--- EDIT ---

Я закончил рефакторинга все мои исходные файлы. Я импортировал классы, которые были необходимы вручную, без использования префикса. Поэтому вопрос для меня уже не важен.

+0

Вы не должны полагаться на 'pch', поскольку в последнем Xcode это больше не создается по умолчанию. Просто включите 'MyConstants.h' в каждый' .m', который ему нужен. – rckoenes

+0

Это не решение, а обходное решение. Я хочу иметь «pch», и у меня нет времени на реорганизацию всего приложения, чтобы не использовать его. – Vive

+0

Плохой дизайн должен быть углублен в файле 'pch', но это вариант. Библиотека, которую вы хотите добавить в какао-контейнеры, должна работать в проекте без файла 'pch'. – rckoenes

ответ

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

+0

Я закончил с импортом префикса в местах, где это необходимо. Мне пришлось потратить некоторое время на рефакторинг , но хорошо ;). – Vive

+0

Виве вы можете изменить свой вопрос и написать, как вы его решили? –

+0

Несомненно, сделано. Как я уже сказал, я только обошел эту проблему. Я проверил ваш ответ как реальный, потому что это кажется самым близким к решению проблемы. Если вы когда-нибудь получите ответ от команды CocoaPods, пожалуйста, сообщите мне об этом - это было бы полезно в разных проектах. – Vive

0

С spec.prefix_header_contents = '#import "MyConstants.h"' вы указали код строки для вставки в .pch файл, созданный pod в процессе установки. Если вы получили эту ошибку, это связано с отсутствием файла MyConstants.h.

EDIT Если файл MyConstants.h является основным источником проекта, вы не можете получить к нему доступ из Pod.

+0

Проблема в том, что он не пропал! Я понимаю, что говорит ошибка. Я не знаю, как заставить cocoapods видеть этот заголовок. Я даже написал местоположение файла в моем вопросе, и вы можете заметить, что он импортируется. В предыдущем коммите я могу увидеть файл после установки из podfile в другом проекте. – Vive

+0

Вы должны включить файл '.h' в свой' s.source_files'. Вы не можете получить доступ к основным файлам проекта из 'pod' –

+0

' spec.source_files = 'Классы/**/*' 'импортирует .h-файл. Он является частью проекта модуля c. – Vive

Смежные вопросы