J'ai utilisé une bibliothèque statique de cacao dans mon application. Lorsque j'ai compilé ma bibliothèque, j'ai eu l'erreur suivante:
Shell Script invocation error:can't open input file:
/Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-
bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/
libSCXMLParser.a (No such file or directory)
Command /bin/sh failed with exit code 1
Comment puis-je réparer cela?
Cliquez sur On Run si elle n'est pas cochée.
J'avais ce problème parce que je refusais l'accès au trousseau et, pour le résoudre, vous devez ouvrir le trousseau, Cliquez ensuite sur le verrou en haut à droite de l'écran pour le verrouiller à nouveau, Vous pourrez ensuite l'archiver. marchera
Supprimer les "données dérivées" a fonctionné pour moi.
Dans Xcode, sélectionnez Fichier> Paramètres de l'espace de travail> Cliquez sur la flèche en regard du chemin du fichier de données dérivées> déplacez le dossier "Données dérivées" dans la corbeille.
On dirait que vous exécutez un script shell et qu'il ne trouve pas votre fichier spécifique. Regardez Target -> Build-Phases -> RunScript
si vous exécutez un script.
Vous pouvez vérifier si un script est en cours d'exécution dans votre sortie de construction (dans le panneau de navigation). Si votre script fait quelque chose de mal, la phase de construction s'arrête.
J'ai eu le même problème l'a fait réparer. Suivez les étapes ci-dessous pour résoudre le problème dans Xcode 6.4.
Maintenant, nettoyez votre projet (cmd + shift + k) et construisez votre projet.
Nettoyer le dossier de construction (Cmd + Maj + Alt + K) a fonctionné pour moi
1) Supprimez le dossier du pod et le fichier .xcworkspace 2) Ouvrez le dossier dans le terminal 3) Tapez "pod install"
Pour moi, mon certificat est expiré. J'ai créé un nouveau certificat.
Avez-vous ajouté la bibliothèque .a au projet xcode? (projet -> phases de construction -> lien binaire avec bibliothèques -> cliquez sur le '+' -> cliquez sur 'ajouter un autre' -> choisissez votre bibliothèque)
Et peut-être que la bibliothèque n'est pas compatible avec le simulateur, avez-vous essayé de compiler pour iDevice (pas de simulateur)?
(Je me suis déjà battu avec le deuxième problème, j'ai une bibliothèque qui ne fonctionnait pas avec le simulateur mais avec un vrai appareil, elle compile ...)
J'ai essayé de redémarrer Xcode (7) et rien (le avez-vous essayé de l'éteindre et de le rallumer du développement iOS pour moi :-)). J'ai ensuite essayé en redémarrant ma boîte et cela a fonctionné.
Dans mon cas, le script échouait lors de la copie d'un fichier d'un emplacement à un autre. Je pense que cela aurait pu être lié au visage du Finder avec des droits d'écriture sur certains dossiers.
Pour moi, cette erreur se produisait parce que je changeais le numéro de version de 1 en 1.0 et le numéro de build de 6 en 1.1 en extrayant le code de l’arborescence des sources. Je viens de le changer et de changer le numéro de build de 6 à 7 et cela fonctionnait bien.
J'ai tout fait et j'ai passé une heure sur le sujet.
Tout essayé ci-dessus ainsi que redémarré Xcode.
Enfin, l'ordinateur redémarré et tout fonctionne à nouveau normalement!
il suffit de mettre votre script dans un fichier et de l'exécuter avec 2>/dev/null en fin de ligne de commande!
De cette façon, s'il y a un problème avec la commande, cela n'arrêtera pas la construction de votre xcode
dans mon cas, j'exécutais simplement une commande pour désinstaller ma copie précédente de l'application à partir d'un iphone connecté, de sorte qu'une erreur pourrait se produire si l'iphone n'est pas là. Pour le résoudre:
$ mobiledevice uninstall_app com.my.app 2>/dev/null
Dans mon cas, il y avait un espace dans le chemin qui manquait au script. Si vous utilisez des variables telles que $PROJECT_DIR
ou $TARGET_BUILD_DIR
, remplacez-les respectivement "$PROJECT_DIR"
ou "$TARGET_BUILD_DIR"
. Après avoir ajouté des guillemets, mon script s'est exécuté avec succès.
Je vais énumérer les choses que j'ai faites n'ont pas fonctionné pour moi et enfin qu'est-ce que
Tout d'abord, la réponse acceptée du script d'exécution uniquement lors de l'installation ne fonctionne pas.
La suppression des données dérivées n'a pas fonctionné.
Qu'est-ce qui a fonctionné:
J'ai ajouté une nouvelle phase de construction dans les phases de construction.
Nouvelle phase de copie des fichiers
Faites glisser le cadre choisi dans la cible de dépôt
Définissez la 'Destination' sur les cadres
Crédit dû à Poste de Kevin Le
Pour ceux qui ne veulent pas décocher cette option (en utilisant des cocoapodes par exemple), le problème pourrait provenir du certificat/de la clé.
Xcode (ou l’outil que vous utilisez, comme un outil de ligne de commande) doit pouvoir utiliser le certificat/la clé du trousseau. Pour cela, ouvrez le trousseau, recherchez le certificat que vous souhaitez utiliser (généralement sur le trousseau login
, My Certificates
), cliquez avec le bouton droit sur la clé, sélectionnez Get Info
, cliquez sur l'onglet Access Control
et ajoutez l'application à la liste.
Si cela ne fonctionne pas, essayez de déverrouiller le trousseau.
Vous pouvez également sélectionner Autoriser toutes les applications à accéder à cet élément au lieu d'applications spécifiques et/ou déplacer le certificat/la clé vers le trousseau System
qui est partagé entre tous les comptes d'utilisateur de ce Mac.
Vérifiez également que le certificat n'a pas expiré.
La seule chose qui a fonctionné pour moi:
1) Supprimer les données dérivées avec CleanMyMac: Système de courrier indésirable -> Xcode indésirable -> Données dérivées Xcode
Suppression de données dérivées avec CleanMyMac
2) Puis dans Xcode: Produit -> Nettoyer