web-dev-qa-db-fra.com

Fichier Crashlytics introuvable

Récemment ouvert un projet que j'avais compilé et soumis à Apple.

Je ne l'ai pas touché depuis quelques mois, mais je reçois cette étrange erreur de compilation à:

#import <Crashlytics/Crashlytics.h>

L'erreur se lit comme suit:

'Crashlytics/Crashlytics.h' file not found

De toute évidence, le cadre est introuvable, mais je suis perplexe quant à la raison pour laquelle, lorsque le projet fonctionnait il y a quelques mois, il s'est soudainement arrêté.

Des suggestions pourquoi?

Xcode: 4.6.3 Mac OS X: 10.8.4

56
Snowcrash

Ajoutez simplement $(SRCROOT) à Framework Search Paths dans Project Build Settings (Search Paths).

Le processus d'installation de Crashlytics dépose son Crashlytics.framework Dans votre dossier de projet (ou crée le lien symbolique).

Si vous avez déplacé Crashlytics.framework quelque part plus profondément dans la hiérarchie des dossiers du projet - définissez 'récursif' vers la droite ou pointez simplement vers son dossier parent dans Header Search Paths:

$(SRCROOT)/Path/to/the/folder/containing/Crashlytics.framework

85
Lukasz

Supprimez les frameworks de votre projet et de votre disque. Vérifiez que vous disposez de la dernière version du plug-in Fabric.

Copiez les frameworks du dossier du plugin sur le bureau avec ces commandes:

ditto -xk ~/Library/Caches/com.crashlytics.mac/5b91b14e832a7b1c29441ec5ba109810/sdks/ios/com.Twitter.crashlytics.ios-default.Zip ~/Desktop/

ditto -xk ~/Library/Caches/com.crashlytics.mac/5b91b14e832a7b1c29441ec5ba109810/sdks/ios/io.fabric.sdk.ios-default.Zip ~/Desktop/

Ajoutez des frameworks du bureau à votre projet.

Informations de: https://twittercommunity.com/t/error-upgrading-from-crashlytics-on-ios/36196/2

25
Wez Sie Tato

Je recommanderais simplement d'utiliser CocoaPods pour ajouter le cadre Crashlytics. Plus besoin de se soucier des chemins.

Podfile:

pod 'Crashlytics', '~> 3.4.1'

Phase de création de script pour le téléchargement dSYM:

./Pods/Crashlytics/iOS/Crashlytics.framework/run <your_crashlytics_id>

Importation:

#import <Crashlytics/Crashlytics.h>
20
fluidsonic

Pour moi, cela a fonctionné:

Supprimez les structures Fabric et Crashlytics de votre projet et supprimez les fichiers du disque de notre projet.

Commentez les lignes de votre appdelegate.m fichier, si vous les avez ajoutés pour les éléments suivants:

import Fabric/Fabric.h
import Crashlytics/Crashlytics.h

et

[Fabric with:@[CrashlyticsKit]];

Dans l'application Fabric, choisissez "Nouvelle application" et sélectionnez votre fichier de projet Xcode

Recopiez le script de génération et générez comme indiqué. L'étape de construction est la raison pour laquelle vous deviez commenter les lignes ci-dessus - cela ne fonctionnera pas si vous laissez ces lignes dedans.

Une fois le script de construction exécuté, il vous invitera à faire glisser les cadres de la fenêtre de l'application vers le navigateur de votre projet. Cela copiera les dernières versions des frameworks he (qui incluent les fichiers .h) dans votre projet

J'ai essayé de télécharger et de copier manuellement à partir d'autres projets, mais c'est la seule façon de récupérer après avoir perdu les fichiers de frameworks pour une application.

4
NoelHunter

Dans mon cas, le Framework était dans le dossier du projet, mais pas dans le Navigateur du projet. Je l'ai fait glisser vers le projet et tout a bien fonctionné.

3
Luda

Dans mon cas, je migrais d'une ancienne installation de Crashlytics via l'application Mac vers Cocoapods. Beaucoup de réponses à cette question recommandent de supprimer complètement tout et de recommencer. J'ai commencé à le faire et j'ai remarqué une différence entre le code trouvé dans documentation de Fabric et le code affiché dans l'application Fabric pendant l'étape où il vous indique quoi copier dans votre phase d'exécution de script de construction.

La documentation de Fabric contient des guillemets doubles entourant la chaîne entière: "${PODS_ROOT}/Fabric/Fabric.framework/run <Your_API_Key> <Your_Build_Secret>"

L'application Fabric ne comportait que des guillemets doubles autour du chemin d'accès à l'exécutable run: "${PODS_ROOT}/Fabric/Fabric.framework/run" <Your_API_Key> <Your_Build_Secret>

Donc, avant de tout supprimer et de recommencer, essayez de mettre à jour votre phase d'exécution de script de création en ceci:

"${PODS_ROOT}/Fabric/Fabric.framework/run" <Your_API_Key> <Your_Build_Secret>

1
djibouti33

J'ai eu ce problème en travaillant avec des équipes distribuées (via github) après avoir vérifié puis extrait Crashlytics. Le Crashlytics.framework ne contiendra qu'un seul dossier - "Versions". Vous devez enregistrer une version du contenu dans Crashlytics.framework vers un autre emplacement, puis copiez-collez-les dans Crashlytics.framework plus tard.

1
rizzes

Supprimez Crashlytics.framework du projet et disque. Copiez et ajoutez-le à nouveau. Ça m'a aidé.

1
Dmitry

J'ai changé le nom du dossier de travail et Craslytics échoue. Vérifiez cela dans les paramètres de construction (chemins de recherche).

Bonne chance!

0
Fran Fox
  1. Supprimez complètement les cadres Crashlytics de votre projet, y compris le script Shell dans le script d'exécution des phases de génération d'application.
  2. Réinstallez le tissu suivez le guide, tout ira bien.
0
Bill Xie

J'avais précédemment mis à niveau vers Fabric et je n'ai eu aucun problème. Quelques jours plus tard, j'ai rouvert le même projet et j'ai eu le problème de fichier crashlytics.h manquant.

Je ne pouvais pas simplement réinstaller à partir du plugin en raison d'un projet non compilateur (j'avais tellement de messages CLS_LOG et de références au fichier crashlytics.h manquant dans mon projet, il aurait fallu beaucoup de temps pour les supprimer juste pour permettre la construction pour travailler - refactor ne fonctionnerait pas sur CLS_LOG).

Au lieu de cela, j'ai supprimé le crashlytics.framework de mon projet et j'ai fait ce qui suit pour le rétablir directement à partir du plug-in:

  1. Téléchargez à nouveau le plug-in Fabric et double-cliquez sur le fichier Zip pour décompresser l'application Fabric.

  2. Cliquez avec le bouton droit sur l'icône Fabric et "Afficher le contenu de l'emballage"

  3. Copiez le dossier Crashlytics.framework sur votre bureau, puis ajoutez-le à votre projet via Fichier -> Ajouter des fichiers à ....

Si l'étape 3 ne fonctionne pas pour vous, vous pouvez également ajouter directement crashlytics.framework à votre dossier de projet sur votre ordinateur, puis l'ajouter également à votre liste de projets via Xcode comme à l'étape 3, mais décochez "Copier les éléments si nécessaire". car vous y avez déjà mis les fichiers vous-même.

Mon projet a ensuite été compilé et a bien fonctionné à nouveau.

En termes de deviner pourquoi le fichier a disparu? Une partie du processus de mise à niveau m'a obligé à supprimer les anciens frameworks, puis à exécuter les scripts, etc. à partir du plugin. Je pense que ce qui s'est passé est plus tard lorsque j'ai vidé ma poubelle, que certaines références ont été perdues. J'ai également eu le problème où je mettais Crashlytics dans mon fichier .gitignore, il a donc disparu de TOUS mes projets tous engagés, ce qui n'était pas génial.

J'espère que cela aide quelqu'un!

0
instAustralia

J'ai essayé de jouer avec le chemin de recherche des frameworks et de déplacer et reconnecter le fichier framework; vérifié les paramètres de construction (Lien binaire avec la section bibliothèques) mais l'erreur persiste.

Enfin, j'ai réinstallé le framework, ce qui ne prend que 2-3 minutes. Le problème peut être dû au fait que vous avez déplacé Crashlytics.framework vers un autre sous-dossier du répertoire racine, mais je ne suis pas sûr de la raison exacte.

  • Supprimer tout ce qui concerne les Crashlytics
  • Démarrez l'application crashlytics, connectez-vous et sélectionnez votre projet
  • Ajouter un script d'exécution
  • Glissez-déposez le fichier .framework (je l'ai gardé dans le dossier racine)
  • Ajoutez les instructions import et startWithAPIKey
0
Yunus Nedim Mehel