Carthage ile Cartfile'dan sadece bir kitaplık nasıl güncellenir?


87

Cartfile'ımda birçok kitaplık var. Yaptığım zaman carthage updatetüm kütüphaneleri gözden geçiririm. Bu çok uzun zaman alabilir.

Kartaca ile tek bir kütüphaneyi güncellemenin bir yolu var mı? Bunun gibi bir şey mi? (bu işe yaramayacak)

carthage update "evgenyneu/moa"

Yanıtlar:


150

Dan 0.12 sürümü build , checkoutve updateisteğe bağlı uzay bağımlılıkları ayrılmış listesi almak

Aşağıdaki gibi bir Cartfile için

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

Bir bağımlılığı güncellemeyi seçebilirsiniz

carthage update Alamofire

veya birden çok bağımlılık

carthage update Alamofire RxSwift

Bayrak eklemeniz gerekiyorsa, bunları en son ekleyin:

carthage update Alamofire --platform iOS

24
carthage update Box --no-use-binaries --platform iOS // ek işaretler belirtmeniz gerekiyorsa
nalexn

@Alex Salom: Box, Cartfile'daki deponun adı mı? AlamoFire gibi daha tanıdık bir şey kullansaydınız anlaşılması daha kolay olurdu belki? Ve Sonuç kısmı nedir? Başka bir depo adı mı?
eonist

1
@GitSyncApp, evet bağımlılıkların adlarını boşluklarla ayrılmış olarak yazmanız gerekiyor. Cevabımı düzenledim
Alex Salom

@ MartinRomañuk tam olarak ne çalışmıyor? Yukarıdaki örneği az önce denedim carthage bootstrapve Cartfile'da tanımlanan ikisinden yalnızca bir bağımlılık işledi. Benim terminali gelen ekran görüntüsüne bir göz atın pasteboard.co/I9bARyq.png
Alex Salom

@AlexSalom adil olmak gerekirse bootstrap, cevap kullanmak derken kullanıyorsunuz update. İle bootstrapne olursa olsun indirirken Carfile.resolveddiyor, güncelleme yapmak olmaz.
Lluis Gerard

13

Carthage şu anda tekli bağımlılıkları güncellemeyi destekliyor. Cartfile'ınızda buna benzer bir şey varsa:

github "bitstadium/HockeySDK-iOS"

Ardından, yalnızca bu bağımlılığı güncelleyebilirsiniz.

carthage update HockeySDK-iOS

9

Şu anda cevap hayır ... Eğer carthage help updatekoşarsan göreceksin

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

Gördüğünüz gibi, güncellenecek tek bir bağımlılık belirtme seçeneğinden söz edilmiyor.

Sen gerektiğini Repo proje üzerinde bir sorunu açmak Bunu destekleyecek soran.


9

Çerçeve GitHub'da depolanmamışsa veya gittanımlayıcıyı kullanıyorsanız ve cartfileşuna benziyorsa:

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

o zaman yalnızca aşağıdaki komutu çalıştıranı güncelleyebilirsiniz

carthage update repo-name

6

Ben tüm cevapları çalıştı ve beni sadece çıkarmadan veya yorum yapma geçici depoları ve çalıştırdıktan sonra

carthage update --platform ios

Catfile'ı önceki durumuna geri yükledikten sonra



0

Swift 5

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

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

Böyle bir Hata ile karşılaşırsan

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

Ardından Terminalde Bölüm 1'i Tekrar Kullanın

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

ve yeniden

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

0

[kartaca güncelleme akışı]

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

En uzun aşama bir buildadımdır [xcodebuild] çünkü:

  1. fat binarykullanılarak inşa edilmiştir lipo[Hakkında]
  2. Kartaca shared frameworks schemesbir projenin tamamını oluşturur . Tam olarak hangi şemaya ihtiyacınız olduğunu biliyorsanız şunları yapabilirsiniz:

    • Belirli planları şurada bırakın xcschemes klasörde.../Carthage/Checkouts/<dependency>/<project>.xcodeproj/xcshareddata/xcschemes/<schema>.xcscheme

    • Carthage/CheckoutsKlasörden yerleşik projeyi açın -> Düzenleri Yönet ... -> belirli şemaları bırakın


0

Görünüşe göre carthage update repo-nameçalışmıyor Carthage 0.36.0. Bu sorunu manuel olarak güncelleyerek çözdüm Carthage.resolved. Örneğin, Cartfileyeni bir bağımlılığa ekleyin :

github "konkab/AlamofireNetworkActivityLogger" ~> 3.0.0

Cartfile.resolvedYeni bir bağımlılığa manuel olarak ekleyin :

github "konkab/AlamofireNetworkActivityLogger" "3.0.0"

Ardından carthage bootstrapyalnızca bir bağımlılığı güncellemek için yapın:

carthage bootstrap

Kullanacak Carthage.resolvedve sadece bir bağımlılık ekleyecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.