Подтвердить что ты не робот

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

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

Library
  /src
    /Core
    /Audio
    /Graphics

И мой podspec выглядит так:

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'. Я пробовал использовать подстановочные знаки, но не повезло.

4b9b3361

Ответ 1

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

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

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

Ответ 2

CocoaPods[About]

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

Podspec должен быть расположен в корне хранилища, и пути к файлам должны быть указаны относительно корня хранилища. Шаблоны файлов могут содержать следующие шаблоны:

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

source_files - Исходные файлы модуля.
Противоположностью является exclude_files[About]

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

Подробнее здесь