.podspec error - шаблон source_files не соответствует ни одному файлу

Я интегрирую один из моих репозиториев github (полный код здесь, если это помогает) с помощью Cocopods, и я получаю эту ошибку при запуске pod spec lint.

 -> DropDownMenu (0.0.1)
  - ERROR | [iOS] The 'source_files' pattern did not match any file.

Это соответствующий код моего .podspec который, по моему мнению, вызывает проблему.

Глядя на примеры здесь, здесь и здесь, я пробовал следующее

s.source_files  = 'Classes/*.{h,m}'
s.source_files  = 'Classes/DropDownMenu.{h,m}'
s.source_files  = 'Classes'
s.source_files  = 'Classes/**/*.{h,m}'

s.source_files поле s.source_files? Или я сделал что-то не так с .podspec? Что я могу сделать, чтобы исправить это?

Моя проблема аналогична этому вопросу, однако решение для меня не работает (мой код обновлен в Github).

Ответы

Ответ 1

Проблема в том, что ваш podspec ссылается на фиксацию, которая еще не имела папку Classes,

т.е. у этой фиксации еще нет папки классов https://github.com/kevinrandrup/DropDownMenu/tree/09c9b3d515b78550557eabc0a8542f9f6f2623cf

Вы можете исправить эту проблему, указав последнюю фиксацию, то есть изменив источник podspec на:

s.source       = { :git => "https://github.com/kevinrandrup/DropDownMenu.git", :commit => "0d6761feefccff1f7d8b7c7788ceb8e9cd1314ea" }
s.source_files  = 'Classes/*.{h,m}'

Ответ 2

Я получил эту проблему после того, как CocoaPods автоматически генерирует файл podspec для меня с версией 1.1.0 RC3.

Исходная строка в файле Podspec была:

s.source_files = 'Pod/Classes/**/*'

Я исправил его, изменив его на:

s.source_files = 'NAME_OF_POD/Classes/**/*'

Ответ 3

Я использовал git tag. Это сработало для меня.

Шаг 1: Добавить тег

git tag 1.0.2 && git push origin --tags

Шаг 2. Установите источник с тегом

s.source       = { :git => "https://github.com/kevinrandrup/DropDownMenu.git", :tag => s.version }
s.source_files  = 'Classes/*.{h,m,swift}'

Обратите внимание на то, что ваш тег должен быть равен вашей версии спецификации.

Ответ 4

У меня проблема. Правильная конфигурация должна быть:

s.source       = { :git => "https://github.com/kevinrandrup/DropDownMenu.git", :commit => "0d6761feefccff1f7d8b7c7788ceb8e9cd1314ea" }
s.source_files  = 'Classes/**/*.{h,m}'

Ответ 6

два решения: укажите 1. тег в полезной нагрузке источника, 2. укажите номер фиксации в полезной нагрузке источника.

Ответ 7

Есть три шага, чтобы заставить это работать.

1. Убедитесь, что путь к source_files правильно.

2. Убедитесь, что исходная папка не пуста. Это означает, что вы должны поместить в него некоторые исходные файлы перед выполнением pod lib lint

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

Ответ 8

Есть другая ситуация. Убедитесь, что ваш файл podspe и файл.git находятся в одном каталоге.

Ответ 9

У меня такая же проблема. Я решил это, изменив эту строку:

spec.source_files = "POD NAME/**/*"

Ответ 10

Я удалил папку ресурсов и исправил ошибку, которую мне пришлось удалить из Project.podspec:

#s.resource_bundles = {
#  'Project' => ['Resources/**/*.{png}']
#}