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"

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

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

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.


9

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

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

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

carthage update repo-name

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



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

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


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.