Rapide. Impossible de créer le module objective-c 'Alamofire'

117

Une nouvelle installation de sous-module vanille d'Alamofire, en utilisant XCode6 et en suivant les instructions vers un T. Quelque chose ici ne convient tout simplement pas. L'erreur que j'obtiens est "Impossible de construire le module objective-c" alamofire "lors de l'importation d'alamofire. Voici une capture d'écran de l'erreur que j'obtiens:

entrez la description de l'image ici Et ma configuration:

entrez la description de l'image ici

arrêtehinal
la source
Je pense que vous devez installer alamofire selon les instructions données ici github.com/Alamofire/Alamofire
Saurabh Prajapati
l'avez-vous fait fonctionner? cela a fonctionné pour moi et après un autre "Build and run", il s'est arrêté et j'ai eu le même message d'erreur ... :(
Georg
2
Un collègue a juste eu le même message d'erreur mais la raison s'est avérée être qu'il utilisait toujours Xcode 6.1 (c'est l'ère 6.3 dans laquelle nous sommes au moment où j'écris ceci). En disant cela juste pour mémoire, si quelqu'un d'autre a du mal avec la même chose.
villapossu

Réponses:

103

Lorsque cela se produit, créez d'abord les frameworks séparément. Dans ton cas:

  • Changer le schéma en Alamofire
  • Construire ( ⌘B )
  • Revenez à votre schéma
  • Courir
Daniel Larsson
la source
3
Très bonne réponse; J'étais inconscient de changer le schéma de construction pour corriger ce genre d'erreurs!
tehprofessor
1
Merci pour l'aide.
Tidane
5
Si vous devez créer le schéma séparément, cela signifie probablement que vous n'avez pas correctement défini le framework comme dépendance cible dans les paramètres de génération de votre application. Faites cela et vous ne devriez pas avoir à le créer manuellement.
Charles A.
J'ai voté pour cela, car cela fonctionne dans Xcode. Malheureusement, cela ne fonctionnera pas si vous construisez à partir de la ligne de commande ou si vous construisez pour Release.
Eneko Alonso
Cela a résolu un problème que j'avais avec GoogleApiClient / Drive. La construction réussissait, mais dès que des modifications étaient apportées au fichier, Xcode se plaignait de l'importation.
Nick Alexander
53

Allez dans Developer / Xcode / DerivedData et supprimez le dossier de votre framework. (Ou supprimez simplement DerivedData lui-même)

Si vous avez une version de votre application dans un simulateur en cours d'exécution, vous devrez supprimer l'application à cet endroit.

Puis nettoyer et construire

Sean Howell
la source
Cela a fonctionné pour moi aussi, mais ensuite je rencontre plusieurs produits de commande, ce lien aidera: stackoverflow.com/questions/50718018/… .
Bhimbim
32

Ça fonctionne toujours pour moi:

  1. Quitter Xcode
  2. Supprimer ~/Library/Developer/Xcode/DerivedData
  3. Modifiez le schéma de votre framework et construisez ⌘B
  4. Modifiez le schéma de votre application et créez ⌘B
Sam Soffes
la source
22

La suppression du dossier DerivedData et le nettoyage et la construction du projet ont résolu ce problème pour moi.

Isuru
la source
15

Essayez ce qui suit dans cet ordre et l'une des étapes devrait fonctionner.

  1. Cmd+ B- Construit l'espace de travail et devrait éventuellement construire la cible ou le module que nous voulons.

  2. Cmd+ Kpuis Cmd+ B- Nettoyer puis Construire

  3. Cmd+ Shift+ Option+ Ket Cmd+ B- Nettoyer le dossier de construction

  4. Quittez Xcode, supprimez les données dérivées, lancez Xcode et Cmd+ Shift+ Option+ Kpuis Cmd+B

C'est le moyen le plus propre possible de nettoyer les données dérivées et les autres caches de Xcode.

ravisekahrp
la source
Pour ceux qui utilisent la synchronisation iCloud (par exemple, ayant le projet dans les documents dossier il serait facilement synchroniser sur plusieurs Mac), pour vérifier le fichier avec le nom: XXX 2.swift. Recherchez et supprimez-les tous, puis exécutez pod install.
John Pang
12

Si vous obtenez cette erreur en essayant d'importer un framework dynamique, assurez-vous que le framework est inclus dans les dépendances cibles de la cible.

Project > "Target" > Build Phases > Target Dependencies

David James
la source
De plus, si vous travaillez avec un autre framework développé dans le même espace de travail, assurez-vous d'ajouter le projet en tant que bibliothèque liée au lieu du fichier de framework, sinon le framework ne sera pas visible en tant que dépendance cible.
Dávid Pásztor
11

Construire propre a fonctionné pour moi.

  1. Construire propre pour Alamo
  2. Construire propre pour HTTPDemo
Nick Mitchell
la source
6

Commentez l'importation et tout le code qui l'utilise, compilez, exécutez, puis supprimez les commentaires. Cela a fonctionné pour moi ...

xytor
la source
1

J'ai résolu ce problème dans l'un de mes projets hybrides Objective-C / Swift.

Dans votre fichier de pontage Objective-C, ajoutez la ligne suivante:

#import <Alamofire/Alamofire.h>

Eddie Lau
la source
0

Tout pod qui n'a pas été construit peut également provoquer cette erreur. (dans mon cas, un ancien pod utilisant une syntaxe obsolète n'a pas pu être construit).

Vous pouvez essayer pod updatede mettre à jour vos pods vers la dernière version et voir comment les choses se passent.

Gang Fang
la source
Pour ceux qui utilisent la synchronisation iCloud (par exemple, ayant le projet dans les documents dossier il serait facilement synchroniser sur plusieurs Mac), pour vérifier le fichier avec le nom: XXX 2.swift. Recherchez et supprimez-les tous, puis exécutez pod install.
John Pang
0

Correctif fou pour ce problème - Seule solution de travail pour moi

Créez un nouveau schéma et ajoutez le framework qui affiche une erreur. Dans ce cas, «Alamofire». Exécutez tous ces schémas.

Une fois que vous avez compilé tous les schémas, la cible de votre projet fonctionnera également très bien.

Cela peut sembler une solution folle, mais une solution qui ne fonctionne que pour moi.

Saranjith
la source
0

Si les architectures valides du projet Alamofire ne contiennent pas les architectures valides de votre projet, l'erreur "Impossible de construire le module objective-c .." se produit.

Ajoutez ces architectures i386 x86_64 arm64 arm64e armv7 armv7s armv6 armv64 aux « Architectures valides » du projet Alamofire dans les « Paramètres de construction ».

Créez le même appareil cible pour les deux projets. Par exemple, dans un premier temps, créez le projet Alamofire pour iPhone 8 (13.2), puis créez votre projet pour le même simulateur.

Si la construction du projet Alamofire prend très peu de temps, c'est-à-dire environ 0,5 seconde, cela signifie que le projet Alamofire se produit en erreur car l'architecture du simulateur sélectionné ne se trouve pas sur les architectures valides .

Yusuf Demirci
la source