Je suis en train de coder dans Swift, et j'ai une erreur:
Pas de module social
Mais je ne comprends pas, car le module est dans mon projet, déclaré dans "Framework et bibliothèques liés" et dans "Binaires intégrés".
Les cadres sont en Objective-C, j'ai donc écrit un en-tête de pont pour cela.
S'il vous plaît, comment puis-je faire en sorte que Xcode reconnaisse le framework?
#import "Social/Social.h"
platform :ios, '10.0'
. C'était une solution.Réponses:
Je ne sais pas pourquoi cela se produit, mais une façon de résoudre votre problème consiste à entrer dans vos paramètres de construction et à définir les chemins de recherche du cadre dans un dossier qui contient les cadres en question. Si les frameworks sont placés dans le répertoire de votre projet, définissez simplement le chemin de recherche du framework sur
$(SRCROOT)
et définissez-le sur récursif.la source
Project Build Settings
lieu deTarget Build Settings
.Dans le cas où c'est vendredi après-midi ou à tout moment après 1h du matin:
L'ouverture
xcodeproj
au lieu dexcworkspace
provoquera une erreur comme celle-ci ...la source
Assurez-vous que la dénomination de vos configurations dans les sous-projets correspond à celle du projet "parent". Si le nom de la configuration ne correspond pas exactement (sensible à la casse), Xcode abandonnera le processus d'archivage et affichera l'erreur "Aucun module de ce type ..."
Autrement dit, si vous avez un projet "parent" avec une configuration nommée "AppStore", vous devez vous assurer que tous les sous-projets ont également ce nom de configuration.
Voir mes captures d'écran ci-jointes.
la source
Debug
etDistribution
et son projet parent essayait de construire pourRelease
. La solution consistait à faire une copie deDistribution
dans le projet enfant et à renommer cette copieRelease
.Je ne sais pas trop pourquoi la réponse de Martin R dans les commentaires de la question est si ignorée:
Assurez-vous que vous avez simplement ignoré l'importation du cadre, car il est déjà ajouté avec l'en-tête de pontage .
J'espère que cela t'aides
la source
J'ai eu le même problème en utilisant Cocoapods et Swift . Je n'ai pas remarqué les lignes suivantes dans le Podfile:
Donc, tout ce que j'avais à faire était de le changer en:
... et ça a marché :)
la source
Veuillez comparer cette capture d'écran avec votre paramètre de construction. Cela peut fonctionner. Accédez au chemin de recherche du framework:
la source
J'éprouvais également ce problème. La solution pour moi était que les schémas d'archivage entre les deux projets ne correspondaient pas. J'ai un xcworkspace avec un projet de framework et un projet d'application. Le problème était que dans le schéma d'archivage de mon application, j'utilisais une configuration de construction différente de celle utilisée par le framework pour son schéma d'archivage. J'ai défini les deux configurations de build sur Release, et cela a résolu le problème.
la source
Les étapes suivantes ont fonctionné pour moi.
"pod update"
dans le terminal.xcworkspace
et reconstruisez.la source
pod install
cela fonctionne.Dans mon cas, après de nombreuses tentatives pour comprendre ce que je faisais de mal lors de l'importation d'un framework, j'ai finalement découvert que le framework lui-même était le problème. Si vous n'obtenez pas votre framework à partir d'une source fiable, vous devez inspecter le framework et vous assurer qu'il contient un dossier Modules avec un fichier module.modulemap à l'intérieur. Si module.modulemap n'est pas présent, vous obtiendrez l'erreur «Aucun module de ce type« Mon cadre »».
Si le dossier Modules ne contient pas le dossier "MyFramework.swiftmodule", le framework sera trouvé mais Xcode ne connaîtra pas son contenu, vous obtiendrez donc différentes erreurs.
la source
En supposant que le Framework est vraiment là et dans le chemin, etc ... supprimez le répertoire ~ / Library / Developer / Xcode / DerivedData / ModuleCache (et nettoyez le projet et supprimez les données dérivées spécifiques au projet pour faire bonne mesure).
Lorsque vous effectuez le nettoyage standard, le répertoire ModuleCache n'est pas reconstruit.
la source
Ce qui a fonctionné pour moi, c'est cette solution à une autre question. Fermer Xcode et rouvrir le projet en tant qu'espace de travail.
Accédez à votre dossier de projet et ouvrez le
.xcodeworkspace
fichier.Une fois que vous avez ouvert l'espace de travail (au lieu du projet), les pods doivent apparaître comme projet de niveau supérieur dans Project Navigator.
la source
Assurez-vous que les
Find implicit Dependencies
options de construction dans Scheme sont activées!la source
J'ai également rencontré la même erreur il y a quelques jours. Voici comment j'ai résolu le problème:
L'erreur est "module introuvable"
Accédez aux paramètres de construction du projet:
Créez un nouveau fichier d'en-tête de pontage: par exemple TestProject-Bridging-Header.h et placez-le sous Swift Compiler → Nom d'en-tête d'interface généré par Objective-C (réf, voir l'image ci-dessus)
C'est tout.
la source
Ok, la façon dont le même problème a été résolu pour moi a été de définir l'emplacement des données dérivées par rapport au répertoire de l'espace de travail plutôt que de le conserver par défaut. Accédez aux préférences dans xcode. Accédez à l'onglet Emplacements dans les préférences et définissez Données dérivées sur Relatif. J'espère que ça aide.
la source
J'obtenais la même erreur pour
Mais j'ai ensuite remarqué que je n'ajoutais pas de pod à la section cible principale, mais seulement que je ajoutais aux cibles Test et TestUI dans Podfile.
Avec la commande
pour un projet xcode swift, le Podfile suivant est généré
Donc, assurez-vous que l'on ajoute des pods à tout espace réservé approprié.
la source
Si vous construisez pour une plate-forme comme tvOS, assurez-vous d'avoir sélectionné un simulateur Apple TV (c'est-à-dire correspondant).
La création d'une application tvOS avec un simulateur iOS sélectionné m'a donné exactement cette erreur. J'ai passé la meilleure partie d'une heure à chercher toutes sortes de problèmes de construction ... doh.
la source
Dans mon cas, l'application IPHONEOS_DEPLOYMENT_TARGET a été définie sur 9.3 alors que dans mon nouveau cadre, elle a été définie sur 10.2
Le résolveur de dépendances implicites a ignoré mon nouveau cadre, car les exigences de la plate-forme cible sont supérieures aux exigences de l'application.
Après avoir ajusté la cible de déploiement iOS du cadre pour correspondre à ma cible de déploiement d'application, le cadre a été compilé et lié avec succès.
la source
J'obtenais la même erreur que j'ai ajouté quelques cadres en utilisant
Cocoapods
. Si nous utilisons des pods dans notre projet, nous devrions utiliser à laxcodeworkspace
place dexcodeproject
. Pour exécuter le projet via xcodebuild, j'ai ajouté un-workspace <workspacename>
paramètre dans laxcodebuild
commande et cela a parfaitement fonctionné.la source
J'ai trouvé que le
Import Paths
dansBuild Settings
était incorrect pour un module personnalisé (MySQL). Après avoir indiqué que dans la bonne direction, le message avait disparu.la source
find
si vous ne le savez pas.J'ai corrigé cela avec
Cibles -> Général -> Framework et bibliothèques liés
Ajoutez le framework qui doit être en haut du
Workspace
dossier. Douleur dans le cul.la source
Je viens de supprimer mon cocoapod. Ensuite, j'ai fait une installation de pod pour le supprimer. Ensuite, je viens de le rajouter dans mon podfile et de le réinstaller. Cela l'a fait fonctionner. Pas certain de pourquoi.
la source
J'avais déjà installé des pods. La construction a fonctionné sans aucun problème lorsque j'ai créé l'application sur mon appareil, mais l'archivage n'a pas fonctionné. Je viens de courir:
aucun nouveau module n'a été installé, juste le fichier .xcodeproj a été régénéré et l'archive a commencé à fonctionner
la source
Dans Xcode 10.1, la solution pour moi était de changer le système de construction dans Paramètres de l' espace de travail dans le menu Fichier. Il est par défaut défini sur Nouveau système de construction , changé en Système de construction hérité et cela a fait l'affaire.
la source
Il existe plusieurs erreurs de configuration potentielles pour lesquelles le problème peut survenir,
.xcworkspace
mais pas.xcodeproj
. Assurez-vous également que vous avez construitSocial
avant de construireTriviaApp
.TriviaApp
cible de déploiement est définie sur9.0
, laSocial
cible de déploiement doit également être définie sur9.0
.TriviaApp
) et votre framework utilisé (Social
) ont le même ensemble de configurations. à savoir si votre projet a trois configurations,Debug
,Release
,ReleasePremium
que votre cadre social doivent également avoir trois configurationsDebug
,Release
,ReleasePremium
. Assurez-vous également que la configuration de l'archive est la même pour les deuxTriviaApp
etSocial
. c'est-à-dire que si votreTriviaApp
schéma d'archive est défini surReleasePremium
, votreSocial
schéma d'archive s doit également être défini dansReleasePremium
.Social
dans chaque.swift
fichier lorsqu'il est déjà ajouté dans leBridging-Header.h
.#use_frameworks!
dansuse_frameworks!
de vousPodfile
. Parfois, la réinstallation de pod fonctionne siSocial
elle dépend des pods.la source
Si vous utilisez Carthage, les cadres de construction restent généralement
$(PROJECT_DIR)/Carthage/Build/iOS
Si vous exécutez
carthage update --platform ios --no-build
(pour gagner du temps) les fichiers dans le dossier Build ne seront pas recréés, alors les modules ne seront pas disponibles pour XCode.Dans mon cas, j'ai couru
carthage update --platform ios
, puis mon problème a été résolu.la source
En général => Frameworks et bibliothèques liés, j'ai ajouté mon
./Pods/Pods.xcodeproj
et ça a fait l'affairela source
Pour moi, Build Active Architecture Only a été défini sur Yes pour la configuration sélectionnée. Cela a fait l'affaire:
Sélectionnez "Pods" dans le navigateur de projet de gauche> Sélectionnez "Build Settings"> Build Active Architecture Only to No
la source
Si toutes les méthodes ci-dessus n'ont pas fonctionné pour vous, comme dans mon cas. Il n'y a eu aucun problème la veille mais le lendemain matin, j'ai fait face à la même erreur. Je viens de supprimer les cadres en supprimant les références et de les ajouter à nouveau. Je sais que cela peut sembler idiot, mais le tour est joué.
la source
J'ai eu un problème similaire avec le chargement de FacebookSDK, j'ai ajouté ~ / Documents / FacebookSDK (recherche où se trouvent vos cadres) aux chemins de recherche du cadre dans les paramètres de construction et après cela, j'ai pu importer le module FBSDKShareKit
la source
Pour ce que ça vaut (je suis novice en utilisant Xcode 7.2 / Swift 2), mais j'ai remarqué que le simple fait d'avoir le fichier .swift de la bibliothèque dans le répertoire du projet vous donne automatiquement accès et n'a pas besoin de l'instruction using.
Exemple: j'utilise SwiftyJSON et le simple fait d'avoir le fichier SwiftyJSON.swift dans le projet était tout ce dont j'avais besoin. La
using
déclaration me donnait en fait l'erreur «pas de module» et le retirer l'a résolue, et cela fonctionne très bien.la source