Включить рекурсивные файлы в 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'. Я пробовал использовать подстановочные знаки, но не повезло.
Ответы
Ответ 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}'
Подробнее здесь