如何使用Carthage从Cartfile更新一个库?

时间:2015-06-03 07:00:09

标签: carthage

我的Cartfile有很多库。当我carthage update时,它会遍历所有库。这可能需要很长时间。

有没有办法用carthage更新一个库?像这样的东西? (这不起作用)

carthage update "evgenyneu/moa"

8 个答案:

答案 0 :(得分:103)

0.12 version buildcheckoutupdate获取可选空格分隔的依赖项列表

对于像以下

这样的Cartfile
github "Alamofire/Alamofire"
github "ReactiveX/RxSwift"

您可以选择更新一个依赖项

carthage update Alamofire

或多个依赖项

carthage update Alamofire RxSwift

答案 1 :(得分:9)

Carthage现在支持更新单个依赖项。如果你在Cartfile中有这样的东西:

<% @xvaziris.each do |xvaziri| %>
  $(list_id).append("<%= j render xvaziri %>");
<% end %>

然后,您可以通过运行

仅更新此一个依赖项
github "bitstadium/HockeySDK-iOS"

答案 2 :(得分: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要求支持。

答案 3 :(得分:5)

我尝试了所有答案,并且对我来说,只是暂时删除评论并在运行后

carthage update --platform ios

将Catfile恢复到以前的状态后

答案 4 :(得分:4)

我最终编写了自己的脚本,为我构建了一个依赖项,并将其与现有的依赖项合并。 您可以在https://github.com/ruipfcosta/carthage-workarounds找到它。

答案 5 :(得分:0)

雨燕5

//MARK:- Step 1
carthage update KeychainAccess --platform iOS

carthage update SDKNAME(like i mention KeychainAccess upper) --platform iOS

如果您遇到这样的错误

//MARK:- If this error occur
error: unable to find utility "xcodebuild", not a developer tool or in PATH

然后再次在Terminal中使用第1部分

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

再次

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

答案 6 :(得分:0)

[carthage update flow]

carthage [update|bootstrap|checkout|build] [dependency1] [dependency2] [--no-use-binaries] [--platform <name>]

//--no-use-binaries - does not use prebuild binary and use source code
//--platform - specify a platform

最长的阶段是build步骤[xcodebuild],因为:

  1. fat binary使用lipo [About]
  2. 构建
  3. 迦太基构建了项目的所有shared frameworks schemes。如果您知道确切需要哪种架构,则可以:

    • xcschemes文件夹.../Carthage/Checkouts/<dependency>/<project>.xcodeproj/xcshareddata/xcschemes/<schema>.xcscheme

    • 中保留特定的方案
    • Carthage/Checkouts文件夹中打开已建项目->管理方案...->保留特定方案

答案 7 :(得分:0)

好像Drawercarthage update repo-name上不起作用。 我通过手动更新Carthage 0.36.0解决了这个问题。例如,向Carthage.resolved添加新的依赖项:

Cartfile

手动向github "konkab/AlamofireNetworkActivityLogger" ~> 3.0.0 添加新的依赖项:

Cartfile.resolved

然后github "konkab/AlamofireNetworkActivityLogger" "3.0.0" 仅更新一个依赖项:

carthage bootstrap

它将使用carthage bootstrap 并仅添加一个依赖项。