J'ai été en utilisant Cocoapods pour gérer les dépendances pour ma Swift projet. Je suis tombé sur ce paquet qui n'est pas inscrite au Cocoapods. Au lieu de cela, il suggère l'utilisation de Swift Gestionnaire de paquets. Cependant, chaque fois que j'essaie d'utiliser Swift Gestionnaire de Paquet pour faire fondamentalement quoi que ce soit, il finit par détruire complètement l'ensemble de mon projet.
Ainsi, afin de comprendre comment l'utiliser effectivement Swift Gestionnaire de Paquet, je suis en train de jouer avec elle dans un projet de test.
Voici ce que j'ai essayé:
- Créer un nouveau projet dans Xcode
Fichier -> Nouveau -> Projet -> Cacao App
Nom de produit: base-ssh-test
Cela crée une demande de base qui permet de charger une fenêtre vide, quand j'appuie sur "Exécuter". Juste pour le fun, j'ai ajouté print("test")
de la applicationDidFinishLaunching
fonction dans ma AppDelegate
de sorte que la fenêtre de débogage dit "test" quand je lance le programme.
Maintenant, je veux ajouter l' Shout
paquet comme une dépendance.
swift package init --type executable
Cela crée les fichiers suivants:
Creating executable package: basic-ssh-test
Creating Package.swift
Creating README.md
Creating .gitignore
Creating Sources/
Creating Sources/basic-ssh-test/main.swift
Creating Tests/
Maintenant, je vais ajouter le "Cri" de la dépendance à mon nouveau Package.swift
le fichier:
// swift-tools-version:4.0
import PackageDescription
let package = Package(
name: "basic-ssh-test",
dependencies: [
.package(url: "https://github.com/jakeheis/Shout", from: "0.2.0")
],
targets: [
.target(
name: "basic-ssh-test",
dependencies: ["Shout"]),
]
)
Et je vais te tirer dans les dépendances:
swift package resolve
Cela se traduit dans les dépendances d'être tiré dans l' .build
annuaire:
Fetching https://github.com/jakeheis/Shout
Fetching https://github.com/jakeheis/CSSH
Fetching https://github.com/IBM-Swift/BlueSocket
Cloning https://github.com/IBM-Swift/BlueSocket
Resolving https://github.com/IBM-Swift/BlueSocket at 0.12.91
Cloning https://github.com/jakeheis/CSSH
Resolving https://github.com/jakeheis/CSSH at 1.0.3
Cloning https://github.com/jakeheis/Shout
Resolving https://github.com/jakeheis/Shout at 0.3.0
Maintenant, je régénérer l' xcodeproj
le fichier:
swift package generate-xcodeproj
Maintenant quand j'ouvre l' xcodeproj
le fichier il y a un nouveau groupe appelé Sources
qui a un seul répertoire basic-ssh-test
avec un seul swift fichier main.swift
avec print("Hello, world!")
.
Le code que je suis réellement intéressé par la course est maintenant dans un dossier bleu appelé basic-ssh-test
. Tous les fichiers nécessaires sont toujours là, mais au lieu de l'exécution de ma demande, Xcode est l'exécution de l' main.swift
le fichier. Je peux le dire, car la sortie de débogage est "Hello, world!" au lieu de "test".
J'ai lu quelques tutoriels qui prétendent que la Swift Gestionnaire de Paquet déplacer mes fichiers source et de continuer à bâtir le même qu'avant, mais c'est clairement pas le cas.
Il n'est pas non plus une "Interface Principale" option dans mes Paramètres de génération, donc je ne peux pas sélectionner "MainMenu.xib" que mon point de départ d'application.
C'est essentiellement la même chose qui se passe lorsque j'essaie d'utiliser Swift Gestionnaire de Projet avec mon projet existant. Il tire dans les dépendances, mais il l'ignore fondamentalement l'ensemble de mon projet existant et passe juste le "hello world" du code.
Comment puis-je utiliser Swift Gestionnaire de Package pour ajouter une dépendance à un projet existant, sans ignorer la base de code existante?