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 erreur de compilation étrange à:

#import  

L’erreur se lit comme suit:

 'Crashlytics/Crashlytics.h' file not found 

Clairement, le cadre ne peut pas être trouvé mais je suis perplexe quant à savoir pourquoi, lorsque le projet a fonctionné il y a quelques mois, il est soudainement arrêté.

Des suggestions pourquoi?

Xcode: 4.6.3 Mac OS X: 10.8.4

    Ajoutez simplement $(SRCROOT) aux chemins de recherche du framework dans les parameters de construction du projet (chemins de recherche).

    Le processus d’installation de Crashlytics supprime 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 du dossier de projet – définissez ‘récursif’ à droite ou pointez directement vers son dossier parent dans les Header Search Paths en- Header Search Paths :

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

    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 plugin vers 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 de bureau à votre projet.

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

    Je recommande l’utilisation de CocoaPods pour append le framework Crashlytics. Plus besoin de se soucier des chemins.

    Podfile:

     pod 'Crashlytics', '~> 3.4.1' 

    Phase de construction du script pour le téléchargement dSYM:

     ./Pods/Crashlytics/iOS/Crashlytics.framework/run  

    Importer:

     #import  

    Pour moi, cela a fonctionné:

    Supprimez les structures de masortingce et de crashlytics de votre projet et supprimez les fichiers du disque pour notre projet.

    Commentez les lignes dans votre fichier appdelegate.m si vous les avez ajoutées 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 compilation et comstackz-le comme indiqué. L’étape de construction est la raison pour laquelle vous avez besoin de commenter les lignes ci-dessus – cela ne fonctionnera pas si vous laissez ces lignes.

    Une fois le script de compilation exécuté, il vous sera demandé de faire glisser les frameworks de la fenêtre de l’application dans votre navigateur de projet. Cela copiera les dernières versions des frameworks (qui incluent les fichiers .h) dans votre projet.

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

    Dans mon cas, le Framework se trouvait dans le dossier du projet, mais pas dans le navigateur de projet. Je l’ai traîné dans le projet et tout s’est bien passé.

    J’ai eu ce problème en travaillant avec des équipes dissortingbuées (via github) après avoir vérifié et extrait Crashlytics . Le Crashlytics.framework n’aura qu’un seul dossier – “Versions”. Vous devez enregistrer une version du contenu dans Crashlytics.framework à un autre endroit, puis les copier-coller dans Crashlytics.framework ultérieurement.

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

    Dans mon cas, je migrais d’une ancienne installation Crashlytics via l’application Mac vers Cocoapods. Beaucoup de réponses à cette question recommandent de tout supprimer et de recommencer. J’ai commencé à le faire et j’ai remarqué une divergence entre le code trouvé dans la documentation de Fabric et le code affiché dans l’application Fabric lors de l’étape où il vous indique quoi copier dans votre phase de génération de script d’exécution.

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

    L’application Fabric ne comportait que des guillemets doubles autour du chemin d’access à l’exécutable d’ run : "${PODS_ROOT}/Fabric/Fabric.framework/run"

    Donc, avant de tout supprimer et de recommencer, essayez de mettre à jour votre phase de construction du script d’exécution à ceci:

    "${PODS_ROOT}/Fabric/Fabric.framework/run"

    J’ai changé le nom du dossier de travail et Craslytics échoue. Cochez cette case dans Paramètres de construction (chemins de recherche).

    Bonne chance!

    J’ai essayé de jouer avec le chemin de recherche des frameworks et de déplacer et reconnecter le fichier cadre; vérifié les parameters de construction (lien binary avec la section des bibliothèques) mais l’erreur a persisté.

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

    • Supprimer tout ce qui concerne les Crashlytics
    • Lancez 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 conservé dans le dossier racine)
    • Ajouter les instructions import et startWithAPIKey
    1. Supprimer complètement les frameworks Crashlytics sur votre proj incluent le script shell dans le script d’exécution des phases de génération de l’application.
    2. Réinstallez le Fabric, suivez le guide, tout ira bien.

    J’avais déjà effectué une mise à niveau vers Fabric et aucun problème. Quelques jours plus tard, j’ai rouvert le même projet et le problème du fichier crashlytics.h manquait.

    Je ne pouvais pas simplement réinstaller à partir du plug-in en raison d’un projet non compilé (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).

    Donc, à la place, j’ai supprimé le crashlytics.framework de mon projet et je l’ai fait pour le rétablir directement 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 du package”

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

    Si l’étape 3 ne vous convient pas, vous pouvez également append directement crashlytics.framework dans votre dossier de projet sur votre ordinateur, puis l’append à votre liste de projets via Xcode à l’étape 3, mais décochez l’option “Copier les éléments si nécessaire”. comme vous avez déjà mis les fichiers vous-même.

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

    En termes de deviner pourquoi le fichier a disparu? Une partie du processus de mise à niveau m’a amené à supprimer les anciens frameworks, puis à exécuter les scripts, etc. depuis le plugin. Je pense que ce qui s’est passé est plus tard quand j’ai vidé mes poubelles, que certaines références ont été perdues. J’avais aussi le problème où je mettais Crashlytics dans mon fichier .gitignore pour qu’il disparaisse de TOUS mes projets, ce qui n’était pas génial.

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