CartfileからCarthageを使用してライブラリを1つだけ更新するにはどうすればよいですか?


87

私のカートファイルには多くのライブラリがあります。私がそうcarthage updateするとき、それはすべての図書館を通り抜けます。それには非常に長い時間がかかる場合があります。

カルタゴで1つのライブラリだけを更新する方法はありますか?このようなもの?(これは機能しません)

carthage update "evgenyneu/moa"

回答:


150

0.12バージョン buildcheckoutおよびupdate依存関係のオプションのスペース区切りのリストを取ります

次のようなカートファイルの場合

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

1つの依存関係を更新することを選択できます

carthage update Alamofire

または複数の依存関係

carthage update Alamofire RxSwift

フラグを追加する必要がある場合は、最後に追加します。

carthage update Alamofire --platform iOS

24
carthage update Box --no-use-binaries --platform iOS //追加のフラグを指定する必要がある場合
nalexn 2016年

@Alex Salom:BoxはCartfileのリポジトリの名前ですか?AlamoFireのようなもっと身近なものを使用した方が理解しやすいでしょうか?そして、結果の部分は何ですか?別のリポジトリ名または?
eonist 2017

1
@GitSyncApp、ええ、依存関係の名前をスペースで区切って書く必要があります。私は自分の答えを編集しました
Alex Salom 2017

@MartinRomañuk正確に機能しないものは何ですか?上記の例をで試したところcarthage bootstrap、カートファイルで定義された2つの依存関係のうち1つだけが処理されました。私のターミナルpasteboard.co/I9bARyq.pngの
AlexSalom19年

@AlexSalomは公平を期すためにbootstrap、答えが使用すると言っている間に使用していますupdate。ではbootstrap、あなたが何でもダウンロードしているCarfile.resolvedと言う、それは更新されません。
LluisGerard19年

13

Carthageは、単一の依存関係の更新をサポートするようになりました。カートファイルに次のようなものがある場合:

github "bitstadium/HockeySDK-iOS"

次に、を実行して、この1つの依存関係のみを更新できます。

carthage update HockeySDK-iOS

9

今のところ答えはノーです...あなたの実行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

ご覧のとおり、更新する依存関係を1つだけ指定するオプションについては言及されていません。

プロジェクトリポジトリで問題開いて、それをサポートするように依頼する必要があります。


9

フレームワークがGitHubに保存されていない場合、またはgit識別子を使用している場合、cartfile次のようになります。

git "ssh://git@bitbucket.org/teamname/repo-name.git" ~> 1.0

次に、次のコマンドを実行しているものだけを更新できます

carthage update repo-name

6

私はすべての答えを試しましたが、私にとっては一時的にリポジトリを削除またはコメントするだけで、実行後に

carthage update --platform ios

Catfileを以前の状態に復元した後



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

次に、ターミナルでパート1を再度使用します

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

そしてまた

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

0

【カルタゴ更新フロー】

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[About]を使用して構築されていlipoます
  2. Carthageはすべてshared frameworks schemesのプロジェクトを構築します。必要なスキーマが正確にわかっている場合は、次のことができます。

    • 特定のスキームをxcschemesフォルダに残します.../Carthage/Checkouts/<dependency>/<project>.xcodeproj/xcshareddata/xcschemes/<schema>.xcscheme

    • Carthage/Checkoutsフォルダからビルドされたプロジェクトを開く->スキームの管理...->特定のスキームを残す


0

carthage 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 bootstrap1つの依存関係のみを更新します。

carthage bootstrap

Carthage.resolved1つの依存関係を使用して追加するだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.