Включить файлы рекурсивно в Cocoapods podspec

Я хочу создать локальный подспец, основанный на частном коде. Я не могу использовать атрибут "источник", так как он не работает. Я могу использовать атрибут 'source_files', но он не включает файлы рекурсивно. Так с каталогом, который выглядит так

Library
  /src
    /Core
    /Audio
    /Graphics

И мой подспек выглядит так:

Pod::Spec.new do |s|
  ...
  s.source = 'src' # this does not work.
  s.source_files = 'src' # this only includes the files in src, and not in any of the Core, Audio or Graphics folders.

Я хочу указать флаг '-r'. Я пытался использовать подстановочные знаки, но не повезло.

1 ответ

Решение

source_files Атрибут использует синтаксис глобуса файла Ruby. Шаблон должен быть относительно корня вашего проекта (то есть файла podspec), так что это должно работать для вас:

s.source_files = 'Library/src/**/*.{h,m}'

source Атрибут не для файлов исходного кода, а скорее для удаленного репозитория, из которого должен быть получен код (чаще всего URL-адрес и тег репозитория Git). См. Документацию спецификации CocoaPods для получения дополнительной информации.

CocoaPods [Около]

spec.source_files = 'Classes/**/*.{h,m,swift}', 'More_Classes/**/*.{h,m,swift}'

Шаблоны файлов:

  • * - Соответствует любому файлу.
  • ** - Рекурсивно сопоставляет каталоги.
  • ? - Соответствует любому символу.
  • [set] - Соответствует любому символу в наборе.
  • {p,q} - Соответствует буквальному p или буквальному q.
  • \ - Уходит от следующего метасимвола.
Другие вопросы по тегам