Комментарии 4
podfile же уже имеет средства для того, чтобы указать свои пути к репозиториям и даже к своему CDN. Чем ваш способ отличается?
Действительно в Podfile можно указать пути к своему репозиторию со specs и sources, например:
source 'https://github.com/artsy/Specs.git'
source 'https://cdn.cocoapods.org/'
При отсутствии интернета можно создать в своем закрытом окружении такой репозиторий со всеми подспеками и обращаться к нему кажды раз на CI. Но при добавлении новых подов в проект нужно будет обновлять такой репозитория новыми подспеками, держать его всегда актуальным.
Мой подход предлагает хранить все нужные подспеки в проекте, благодаря чему pod install не нужно будет никуда обращаться для скачивания, и не нужно создавать свои репозитории
Речь, вероятно, не про кастомный репозиторий, а про флаг :path при объявлении пода в Podfile:
pod 'AFNetworking', :path => './DevPods/AFNetworking'
В таком случае помимо флага :path
нужно будет прописывать еще путь до подспеки :podspec
, так как при использовании только одного :path
требуется, чтобы в папке AFNetworking находился файл.podspec или .podspec.json для этого Пода.
Можно вручную поместить подспеку в эту папку, но после последующего обновления версии Cocoapods перепишет полностью эту папку, удалив подпеку. Лучше создать папку для локальных подспек и указать к ней путь:
pod 'AFNetworking', :path => 'Pods/AFNetworking', :podspec => 'Pods/LocalPodspecs/AFNetworking.podspec.json'
Только опять-таки при таком подходе мы имеем дело напрямую с подспеками из GitHub репы, причем нужно еще вручную их перетаскивать и обновлять с переходом на новую версию. Более того возникнут неудобства с обновлением версии. И нельзя будет указывать версию в Podfile, если стоят флаги :path и :podspec ( например, pod 'AFNetworking', '3.0.0', ... ), версия будет читаться из version в podspec. И чтобы обновить версию Пода нужно будет: удалить параметры :path и :podspec, вместо них прописать нужную версию, установить через pod install, вернуть обратно :path и :podspec, взять новую подспеку для новой версии, обновить ею старую.
Так или иначе нет возможности выполнить pod install без подспек для каждого Пода. Конечно можно что-нибудь придумать и автоматизировать описанный метод с флагами и хранить в проекте подспеки вместе с Подами в "чистом" виде, а не в одном zip. А может кому-то приглянется мой способ, рассмотренный в статье.
Cocoapods pod install без интернета на CI при использовании Tuist