69 votes

Comment reconstruire les changements de pods de développement ?

J'ai un pod de développement que je connecte à mon application localement à l'aide de la fonction :path => '~/Projects/Swift/pod' . Lorsque j'apporte des modifications au code de l'application dans ce pod de développement, ces modifications ne sont pas incluses après la construction. C'est comme si je construisais du code en cache, et non mes modifications de code.

Pour inclure les modifications du code dans la compilation, je dois exécuter la commande "Clean Build Folder", mais après cela, la compilation prend beaucoup de temps, pendant 10 minutes, ce qui n'est pas très productif.

Littéralement, je commente une ligne de code et j'attends 10 minutes pour voir les changements.

Quel est le problème ?

J'ai essayé d'exécuter "pod install/pod update" après tout changement, mais cela n'a aucun effet.

0 votes

Cela fonctionne comme prévu pour moi, avec plusieurs applications et pods. Etes-vous sûr de modifier les fichiers qui sont effectivement référencés par votre podspec ? sources ?

0 votes

@Gereon Oui, je suis sûr que je change les fichiers qui sont effectivement référencés par la source de mon pod spec.

0 votes

Pouvez-vous reproduire ce phénomène dans un projet nouvellement créé ? J'ai également trouvé ce vieux problème de cocoapods : github.com/CocoaPods/CocoaPods/issues/5341 - Vous utilisez peut-être une ancienne version de cocoapads (la version 1.5.x est la plus récente).

70voto

Won Points 356

Je l'utilise ci-dessous.

Product -> Schemes -> EditScheme -> Build -> Add a development Pods ("+" sign)

1 votes

Une solution parfaite !

0 votes

Cela fonctionne bien ! C'est mieux que de passer au système de construction existant.

0 votes

Je ne vois pas l'option "Ajouter un Pod de développement". Voulez-vous dire sélectionner le + signe ?

50voto

Ahti Points 709

J'ai eu le même problème avec Xcode 10.0 (10A255). Le retour au système de construction traditionnel (dans Fichier -> Paramètres du projet/espace de travail) m'a permis de résoudre le problème pour le moment, jusqu'à ce qu'il soit corrigé par Cocoapds ou Xcode.

2 votes

Oui, ça marche. Après cela, vous pouvez revenir au nouveau système de construction.

11 votes

C'est de loin l'un des bugs les plus ennuyeux que j'ai trouvé avec Xcode 10. Beaucoup d'heures perdues !

0 votes

FWIW, pendant que vous définissez le chemin localement La mise en place d'un système de construction pour l'héritage a bien fonctionné. Même pod install n'était pas nécessaire. pod install n'est pas nécessaire si vous avez changements de fichiers il n'est nécessaire que si vous avez nouveaux fichiers

8voto

Alibaba Points 292

Si le retour à l'ancien système de construction fonctionne, le temps de construction peut augmenter dans certains grands projets. Une solution alternative est d'ajouter cette exécution script. find "${SRCROOT}/Pods" -type f -name *frameworks.sh -exec bash -c "touch \"{}\"" \; pour toucher tous les scripts du framework sous les phases de construction de votre projet->Embed Pods Framework. Cela devrait permettre de récupérer vos nouvelles modifications jusqu'à ce que ce bogue soit corrigé.

0 votes

Cette méthode semble être la plus fiable car le nouveau système de construction d'Apple est mauvais pour trouver les changements et Catalyst, par exemple, ne fonctionnera pas avec l'ancien système :(.

0 votes

Cette solution de contournement a fonctionné pour moi. Mais le script est écrasé lors de l'installation du pod.

5voto

nickgzzjr Points 151

Comme solution de rechange, j'ai "nettoyé" manuellement mes pods de développement.

  1. Dans le Pods projet ouvert Products sélectionner le(s) cadre(s) du pod de développement
  2. Dans l'inspecteur de droite, je sélectionne la flèche qui ouvre le Finder.
  3. Supprimer le(s) cadre(s)
  4. Construire/Exécuter

J'espère que cela vous aidera, et qu'Apple corrigera ce problème rapidement...

P.S. Je vais certainement écrire un simple script pour faire cela.

Mise à jour 9/25/18

Il semble également que je doive parfois supprimer la ou les constructions intermédiaires.

Mise à jour 9/23/19

Il semble qu'il ait été corrigé dans CocoaPods 1.8.0 (Wow, ça fait une année entière...)

0 votes

Votre solution fonctionne très bien. Je ne comprends simplement pas ce que vous entendez par "doit supprimer le build intermédiaire". Pouvez-vous préciser ?

4voto

Saren Inden Points 321

Je n'ai pas encore trouvé de solution automatique pratique pour cela. Mais vous pouvez faire manuellement CMD + shift + k o product -> clean build folder .

Mais alors le projet entier doit être reconstruit. Si vous avez beaucoup de pods/frameworks ou de code source, cela peut prendre un certain temps pour recompiler.

Comme d'autres personnes l'ont mentionné, il semble que ce soit un bogue lié au nouveau système de construction. Vous pouvez donc revenir à l'ancien système.

Ces deux solutions ne sont pas vraiment bonnes. Mais c'est le prix à payer pour travailler avec Apple ;).

0 votes

@NikKov totalement d'accord mais avez-vous une meilleure solution ? J'ai déjà mentionné que les deux solutions ne sont pas vraiment bonnes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X