Устранить зависимость в Cocopods, когда в библиотеке нет опубликованной спецификации pod.

У меня есть podspec, который зависит от другой библиотеки. В этой библиотеке нет опубликованной спецификации.

Каков наилучший способ разрешить зависимость в этом случае? Ключевое слово «зависимость» позволяет ссылаться только на другие спецификации, но не на внешнее репо (например, через репо + SHA-1).

Опубликовать спецификацию для библиотеки самостоятельно? Или я могу создать локальный podspec, который я фиксирую с репо, и как-то ссылаться на него?


person camimvogelsang    schedule 30.05.2014    source источник


Ответы (1)


Лучше всего создать спецификацию для другой библиотеки и включить эту спецификацию в качестве зависимости в свою. Другим вариантом было бы связать библиотеку с вашей и локально ссылаться на файлы в вашей спецификации. Это не рекомендуется.

person Keith Smiley    schedule 30.05.2014
comment
Итак, вы предлагаете опубликовать публичный podspec и продвигать Cocoapods/Specs? Что произойдет, если мейнтейнер библиотеки в один прекрасный день решит, что хочет сам опубликовать спецификацию? Тогда это создаст дубликат? Кроме того, я бы предпочел не иметь другой подспецификации, на которую полагаются другие, и которую мне пришлось бы поддерживать (просто хочу сослаться на нее внутри). Есть ли способ выполнить автоматическую инициализацию и обновление подмодуля git при обновлении модуля? Затем я мог бы вернуться к использованию подмодулей git для этих зависимостей. - person camimvogelsang; 31.05.2014
comment
Вы можете вернуться к подмодулям. Если первоначальный сопровождающий когда-либо захочет взять его на себя, ему может быть предоставлен доступ через транк. Вы также можете создать частный репозиторий спецификаций с этой спецификацией только для внутреннего использования. - person Keith Smiley; 31.05.2014
comment
Привет, Кит, большое спасибо за твою помощь, я оценил это! Чтобы уточнить, вернуться к подмодулям git означало бы добавить его в инструкции, верно? Что-то вроде добавления модуля в ваш подфайл, после обновления модуля вызовите инициализацию подмодуля git... или есть способ автоматизировать его, чтобы обновление модуля также выполняло инициализацию подмодуля git для пользователя? - person camimvogelsang; 31.05.2014
comment
Кроме того, что касается частной подспецифики, есть ли способ сослаться на нее как на зависимость в основной подспецификации? Или пользователь должен сначала добавить пользовательский репозиторий Specs (добавить репозиторий pod). - person camimvogelsang; 31.05.2014
comment
На самом деле вы можете настроить источник для автоматической загрузки подмодулей. Документация здесь. Таким образом, пользователю не придется иметь дело или знать о том, как это. Вы не хотели бы публично публиковать спецификацию, основанную на частной зависимости. Спецификация не прошла бы pod spec lint и не сработала бы ни для кого, кроме вас. - person Keith Smiley; 01.06.2014