2015-06-03 5 views
31

В моем Cartfile есть много библиотек. Когда я делаю carthage update, он проходит через все библиотеки. Это может занять очень много времени.Как обновить только одну библиотеку из Cartfile с помощью Carthage?

Есть ли способ обновить только одну библиотеку с помощью carthage? Что-то вроде этого? (Это не будет работать)

carthage update "evgenyneu/moa" 

ответ

50

От 0.12 versionbuild, checkout и update возьмите дополнительный список разделенных пробелами зависимостей

Для Cartfile как следующий

github "Alamofire/Alamofire" 
github "ReactiveX/RxSwift" 

Вы можете выбрать для обновления одного DEPENDENCY

carthage update Alamofire 

или несколько зависимостей

carthage update Alamofire RxSwift 
+10

** Карфаген обновление Box --no-потребительных двоичные файлы --platform IOS ** // если вам необходимо указать дополнительные флаги – NAlexN

+0

@Alex Salom: Box является именем репо в Cartfile? было бы легче понять, если бы вы использовали что-то более знакомое, например, AlamoFire? И какова часть результата? Другое имя репо или? – eonist

+1

@GitSyncApp, да, вам нужно написать имена зависимостей, разделенных пробелами. Я отредактировал свой ответ –

7

Сейчас ответ нет ... Если запустить carthage help update вы увидите

Update and rebuild the project's dependencies 

[--configuration Release] 
    the Xcode configuration to build (ignored if --no-build option is present) 

[--platform all] 
    the platform to build for (ignored if --no-build option is present) 

[--verbose] 
    print xcodebuild output inline (ignored if --no-build option is present) 

[--no-build] 
    skip the building of dependencies after updating 

[--use-ssh] 
    use SSH for downloading GitHub repositories 

[--use-submodules] 
    add dependencies as Git submodules 

[--no-use-binaries] 
    check out dependency repositories even when prebuilt frameworks exist (ignored if --no-build option is present) 

[--color auto] 
    whether to apply color and terminal formatting (one of ‘auto’, ‘always’, or ‘never’) 

[/path/to/your/app] 
    the directory containing the Carthage project 

Как вы можете видеть, что нет никакого упоминания в качестве опции, чтобы указать только одна зависимость для обновления.

Вы должны open an issue on the project repo с просьбой поддержать это.

4

В итоге я написал свой собственный скрипт, который создает для меня одну зависимость и объединяет ее с моими существующими зависимостями. Вы можете найти его на https://github.com/ruipfcosta/carthage-workarounds.

7

Карфаген поддерживает обновление одиночных зависимостей now.If у вас есть что-то подобное в вашем Cartfile:

github "bitstadium/HockeySDK-iOS" 

Затем вы можете обновить только это одна зависимость, запустив

carthage update HockeySDK-iOS 
0

, если framework не хранится в GitHub, или вы используете идентификатор git, а ваш cartfile выглядит так:

git "ssh://[email protected]/teamname/repo-name.git" ~> 1.0 

, то вы можете обновить только, что один, выполнив следующую команду

carthage update repo-name 
Смежные вопросы