Что именно делает `pod repo update`?

Я следую интернет-руководству по Firebase, и в рамках этого мне пришлось немного поработать в командной строке. Командная строка мне удобна, но с Cocoapods я не знаком. Я запустил pod repo update, но после этого понял, что запустил его для всей папки «Документы» на моем Mac, а не для папки, содержащей мой проект. На выполнение у меня ушло более 20 минут, и когда он наконец завершился, он распечатал буквально тысячи вещей, некоторые из которых включали создание и удаление. Я был обеспокоен - приведет ли эта команда к изменению чего-либо в моих документах, кроме проекта Firebase? И что вообще pod repo update делает в этом отношении?


person A Tyshka    schedule 29.04.2017    source источник
comment
Почему бы просто не почитать документацию. Например, guides.cocoapods.org/using/pod-install-vs-update .html   -  person Roope    schedule 30.04.2017
comment
@Roope Я прочитал эту документацию. Я просто не понимал, что произойдет, поскольку прямо в папке «Документы» не было подфайла, он был похоронен в нескольких слоях папок.   -  person A Tyshka    schedule 30.04.2017


Ответы (2)


Согласно документации, pod repo update обновляет репозитории спецификаций, расположенные в ~/.cocoapods/repos в вашем доме папка.

Обновляет локальный клон ИМЯ репозитория спецификации. Если NAME не указано, это обновит все репозитории спецификаций в ~ / .cocoapods / repos.

repo - это в основном список всех доступных модулей и версий. Я только что столкнулся с ошибкой в ​​наших сборках CI, потому что репо не включало спецификацию для библиотеки, которую я только что добавил. Запустив pod repo update, он теперь знает об этой новой версии и может продолжить ее установку.

Итак, чтобы ответить на ваш вопрос ... Запуск pod repo update в папке с документами ничего не сделает в этой папке. Он обновит ссылки на спецификации модулей только в вашей папке ~/.cocoapods/repos.

person Scriptable    schedule 13.07.2017
comment
если мы не используем систему управления версиями, нам не нужно вызывать обновление репо? просто pod install? - person isJulian00; 30.11.2018
comment
Да, вам все равно нужно вызвать обновление pod repo, cocoapods загружает детали репо, не имеет значения, используете ли вы систему управления версиями в своем проекте или нет, ему необходимо загрузить список модулей и их версий. - person Scriptable; 30.11.2018
comment
Я использую рекламную сеть amazon и рекламную сеть admob, знаете ли вы, почему amazon говорит мне просто запустить pod install, а admob говорит мне pod install --repo-update, извините, я немного новичок в этом, когда вы говорите, что cocoapods необходимо загрузить репо подробности, что такое детали репо? - person isJulian00; 30.11.2018
comment
Я не уверен, что такое репо - person isJulian00; 30.11.2018
comment
Cocoapods поддерживает список (репо) для всех модулей, их ссылки на выпуски github, информацию и т. Д. В Интернете, и он загружается / индексируется в папке ~/.cocoapods/repos. Поэтому, когда вы установите его, он получит текущий список доступных модулей / библиотек. через несколько месяцев и скажите, что Swift обновляет новую версию, тогда вам понадобится обновленный модуль, поддерживающий эту быструю версию. но ваши местные cocoapods не знают об этой обновленной версии. поэтому вы запускаете обновление репозитория pod, и cocoapods обновляет свой список доступных библиотек - person Scriptable; 30.11.2018
comment
если я удалю модуль из своего подфайла, нужно ли мне выполнить команду, чтобы она вступила в силу? - person isJulian00; 01.12.2018
comment
ничего, просто запустите сборку, она не будет включать эту библиотеку при сборке - person Scriptable; 02.12.2018
comment
вы знаете, какая платформа: ios, '12 .0 'должна быть? предполагается, что он должен быть установлен в соответствии с целью развертывания, которую мы установили в настройках сборки? - person isJulian00; 17.12.2018
comment
@izzyMachado, это должна быть самая низкая версия iOS, которую вы поддерживаете. для нового проекта вы, вероятно, можете оставить его как 12. - person Scriptable; 17.12.2018
comment
хорошо, спасибо, знаете ли вы, что настройки проекта для «биткода включен» переопределяют настройки cocoapod для «биткойн активирован»? Я использую игровой движок с включенным биткодом = нет, и я добавил cocoapods, и биткод включен по умолчанию = да, все строится нормально, просто интересно, переопределяет ли он или как он с этим справляется? - person isJulian00; 18.12.2018
comment
Я не уверен, извините, лучше проверить документацию - person Scriptable; 18.12.2018
comment
Репо - это в основном список всех модулей и доступных версий ‹- я думаю, что ваша формулировка неточна. Репо - это в основном список всех отдельных подспеков, под отдельными я подразумеваю каждую версию подспецификации без папки тегов. Он не содержит самой капсулы. См. все общедоступные спецификации, затем несколько версий конкретной спецификации, например CWNotificationBanner. Репо обновляется, если существует новый тег - person Honey; 12.08.2019
comment
Привет, дорогая, спасибо за дополнительную информацию, я не пытался быть технически точным, но простым для понимания, поэтому «в основном список ....» это было упрощение :) - person Scriptable; 13.08.2019

Основной репозиторий Specs - это не что иное, как список ВСЕХ PodSpecs. PodSpec:

Спецификация описывает версию библиотеки Pod. Он включает подробную информацию о том, откуда должен быть извлечен источник [какой тег, фиксация или ветвь], какие файлы использовать, применяемые параметры сборки и другие общие метаданные, такие как его имя, версия и описание.

Каталог specs - это не что иное, как список всех отдельных PodSpecs. Каждая версия PodSpec находится в каталоге тегов. Репо не содержит самого модуля. Репо содержит файл PodSpec. PodSpec дает местоположение репо и множество других метаданных⚡︎

spec.source = { :git => 'https://github.com/tonymillion/Reachability.git', :tag => 'v3.1.0' }

Когда вы делаете pod repo update, вы получаете последние спецификации PodSpec (а не сам модуль) из https://github.com/CocoaPods/Specs. Если вы хотите обновить только отдельный источник пакета, просто выполните pod repo update [NAME]

Главный репозиторий Cocoapods / Specs:

введите описание изображения здесь

список некоторых PodSpec от Alamofire

введите описание изображения здесь

одиночный PodSpec 4.7.3:

введите описание изображения здесь


⚡︎: PodSpec: спецификация описывает версию библиотеки Pod. Он включает подробную информацию о том, откуда должен быть извлечен источник, какие файлы использовать, применяемые параметры сборки и другие общие метаданные, такие как его имя, версия и описание.


Ваш фактический проект вводит код через pod update или pod install, затем физические файлы загружаются на ваш Mac и копируются для вашего проекта.

person Honey    schedule 12.08.2019