Comment mettre à jour une seule bibliothèque du Cartfile avec Carthage?

87

Mon Cartfile a de nombreuses bibliothèques. Quand je le fais, carthage updateil passe par toutes les bibliothèques. Cela peut prendre très longtemps.

Existe-t-il un moyen de mettre à jour une seule bibliothèque avec Carthage? Quelque chose comme ça? (cela ne fonctionnera pas)

carthage update "evgenyneu/moa"
Evgenii
la source

Réponses:

150

A partir de 0,12 la version build , checkoutet updateprendre un espace séparé en option liste des dépendances

Pour un Cartfile comme le suivant

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

Vous pouvez choisir de mettre à jour une dépendance

carthage update Alamofire

ou plusieurs dépendances

carthage update Alamofire RxSwift

Si vous devez ajouter des indicateurs, ajoutez-les en dernier:

carthage update Alamofire --platform iOS
Alex Salom
la source
24
Carthage Update Box --no-use-binaries --platform iOS // si vous devez spécifier des indicateurs supplémentaires
nalexn
@Alex Salom: Box étant le nom du repo dans le Cartfile? serait plus facile à comprendre si vous utilisiez quelque chose de plus familier comme AlamoFire peut-être? Et quelle est la partie Résultat? Un autre nom de repo ou?
eonist
1
@GitSyncApp, oui, vous devez écrire les noms des dépendances séparés par des espaces. J'ai modifié ma réponse
Alex Salom
@ MartinRomañuk qu'est-ce qui ne fonctionne pas exactement? Je viens d'essayer l'exemple ci-dessus avec carthage bootstrapet il n'a traité qu'une seule dépendance parmi les deux définies dans le Cartfile. Jetez un œil à la capture d'écran de mon terminal pasteboard.co/I9bARyq.png
Alex Salom
@AlexSalom pour être juste, vous utilisez bootstrapalors que la réponse dit d'utiliser update. Avec bootstrapvous téléchargez quoi que ce soit Carfile.resolved, il ne sera pas mis à jour.
Lluis Gerard
13

Carthage prend désormais en charge la mise à jour des dépendances uniques.Si vous avez quelque chose comme ça dans votre Cartfile:

github "bitstadium/HockeySDK-iOS"

Ensuite, vous pouvez mettre à jour uniquement cette dépendance en exécutant

carthage update HockeySDK-iOS
user978510
la source
9

En ce moment , la réponse est non ... Si votre course , carthage help updatevous verrez

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

Comme vous pouvez le voir, il n'y a aucune mention d'une option pour spécifier une seule dépendance à mettre à jour.

Vous devez ouvrir un problème sur le dépôt de projet en demandant de le soutenir.

mokagio
la source
9

Si le framework n'est pas stocké dans GitHub, ou si vous utilisez l' gitidentifiant, et que vous cartfileressemblez à ceci:

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

alors vous ne pouvez mettre à jour que celui qui exécute la commande suivante

carthage update repo-name
SeanRobinson159
la source
6

J'ai essayé toutes les réponses, et pour moi seulement supprimer ou commenter temporairement les référentiels et après l'exécution

carthage update --platform ios

après avoir restauré le Catfile à l'état précédent

Ronaldo Albertini
la source
0

Swift 5

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

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

si vous faites face à une erreur comme celle-ci

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

Ensuite, utilisez à nouveau la partie 1 dans le terminal

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

et encore

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Shakeel Ahmed
la source
0

[flux de mise à jour de carthage]

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

La phase la plus longue est une buildétape [xcodebuild] car:

  1. fat binaryest construit avec lipo[À propos]
  2. Carthage construit tout shared frameworks schemesun projet. Si vous savez exactement de quel schéma vous avez besoin, vous pouvez:

    • Laisser des schémas spécifiques dans le xcschemesdossier.../Carthage/Checkouts/<dependency>/<project>.xcodeproj/xcshareddata/xcschemes/<schema>.xcscheme

    • Ouvrir le projet construit à partir du Carthage/Checkoutsdossier -> Gérer les schémas ... -> laisser des schémas spécifiques

yoAlex5
la source
0

On dirait que carthage update repo-nameça ne marche pas Carthage 0.36.0. J'ai résolu ce problème en mettant à jour manuellement Carthage.resolved. Par exemple, ajoutez à Cartfileune nouvelle dépendance:

github "konkab/AlamofireNetworkActivityLogger" ~> 3.0.0

Ajouter Cartfile.resolvedmanuellement à une nouvelle dépendance:

github "konkab/AlamofireNetworkActivityLogger" "3.0.0"

Ensuite, ne carthage bootstrapmettez à jour qu'une seule dépendance:

carthage bootstrap

Il utilisera Carthage.resolvedet ajoutera simplement une dépendance.

Denis Kutlubaev
la source