私のカートファイルには多くのライブラリがあります。私がそうcarthage update
するとき、それはすべての図書館を通り抜けます。それには非常に長い時間がかかる場合があります。
カルタゴで1つのライブラリだけを更新する方法はありますか?このようなもの?(これは機能しません)
carthage update "evgenyneu/moa"
回答:
0.12バージョン build
、checkout
およびupdate
依存関係のオプションのスペース区切りのリストを取ります
次のようなカートファイルの場合
github "Alamofire/Alamofire"
github "ReactiveX/RxSwift"
1つの依存関係を更新することを選択できます
carthage update Alamofire
または複数の依存関係
carthage update Alamofire RxSwift
フラグを追加する必要がある場合は、最後に追加します。
carthage update Alamofire --platform iOS
carthage bootstrap
、カートファイルで定義された2つの依存関係のうち1つだけが処理されました。私のターミナルpasteboard.co/I9bARyq.pngの
bootstrap
、答えが使用すると言っている間に使用していますupdate
。ではbootstrap
、あなたが何でもダウンロードしているCarfile.resolved
と言う、それは更新されません。
Carthageは、単一の依存関係の更新をサポートするようになりました。カートファイルに次のようなものがある場合:
github "bitstadium/HockeySDK-iOS"
次に、を実行して、この1つの依存関係のみを更新できます。
carthage update HockeySDK-iOS
今のところ答えはノーです...あなたの実行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つだけ指定するオプションについては言及されていません。
プロジェクトリポジトリで問題を開いて、それをサポートするように依頼する必要があります。
フレームワークがGitHubに保存されていない場合、またはgit
識別子を使用している場合、cartfile
次のようになります。
git "ssh://git@bitbucket.org/teamname/repo-name.git" ~> 1.0
次に、次のコマンドを実行しているものだけを更新できます
carthage update repo-name
私はすべての答えを試しましたが、私にとっては一時的にリポジトリを削除またはコメントするだけで、実行後に
carthage update --platform ios
Catfileを以前の状態に復元した後
結局、単一の依存関係を構築し、それを既存の依存関係とマージする独自のスクリプトを作成することになりました。https://github.com/ruipfcosta/carthage-workaroundsで見つけることができます。
スウィフト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
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]です。
fat binary
[About]を使用して構築されていlipo
ますCarthageはすべてshared frameworks schemes
のプロジェクトを構築します。必要なスキーマが正確にわかっている場合は、次のことができます。
特定のスキームをxcschemes
フォルダに残します.../Carthage/Checkouts/<dependency>/<project>.xcodeproj/xcshareddata/xcschemes/<schema>.xcscheme
Carthage/Checkouts
フォルダからビルドされたプロジェクトを開く->スキームの管理...->特定のスキームを残す
で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 bootstrap
1つの依存関係のみを更新します。
carthage bootstrap
Carthage.resolved
1つの依存関係を使用して追加するだけです。