Crashlytics in iOS werden nicht über "Build Your Project" in der Fabric-App hinaus fortgesetzt


74

Ich installiere Crashlytics für meine iOS-App. Ich habe es über den Site-Link heruntergeladen und alle Schritte zum Integrieren der Frameworks, Hinzufügen des Ausführungsskripts usw. durchlaufen.

Ich hatte ein Problem, also entfernte ich die Frameworks und beschloss, neu zu beginnen und eine Neuinstallation zu versuchen. Die Fabric-App wurde jedoch auf eine neuere Version aktualisiert. Wenn ich jetzt versuche, Crashlytics in meiner App neu zu installieren, kann ich die Frameworks nicht neu installieren. Es geht direkt vom Klicken auf "Installieren" zum Bildschirm "Erstellen Sie Ihr Projekt", den ich nicht übergeben kann.

Um Ihr Projekt zu konfigurieren, erstellen Sie es jetzt, indem Sie ⌘B drücken

Ich drücke ⌘B, es baut und nichts passiert. Ich denke, das Problem liegt darin, dass ich die Crashlytics- und Fabric-Frameworks aus meinem Projekt entfernt habe, aber ich sehe keine Möglichkeit, sie wieder hinzuzufügen. Die Fabric-App bietet mir diese Option nicht.


1
@MikeB: Ich sehe nur "Jetzt aktualisieren wir Crashlytics", ohne die Option, später tatsächlich eine neue App hinzuzufügen. Der Aktualisierungsablauf funktioniert aufgrund doppelter Symbole einfach nicht. Wie bekomme ich eine korrekte Version des Crashlytics-Frameworks, die gut mit Fabric funktioniert?
Matej Balantič

@ MatejBalantič seltsam zu hören, dass Sie doppelte Symbole sehen. Versuchen Sie, die aktuellen Kopien des Frameworks zu entfernen. Auch der zuvor erwähnte Schritt würde auch als Reparaturmodus fungieren, um Sie wieder zum Laufen zu bringen.
Mike Bonnell

Ich möchte sagen, dass das Hauptproblem hier ist, wenn Sie dies mit einem versuchen .xcworkspace. Der Grund dafür ist, dass wenn Sie von Crashlytics öffnen, es Ihre öffnet .xcxcodeproj.
Jacksonkr

Bei Verwendung von Xcode 10.2 funktionieren die folgenden Antworten nicht mehr. Fabric muss manuell installiert werden.
Raptor

@ Raptor ist richtig. Dies funktionierte nicht mehr mit Xcode 10.2 mit Cocoapods. Ich habe nicht versucht, Fabric manuell zu installieren (und das möchte ich nicht).
Albertodebortoli

Antworten:


70

Übergang von Kommentar zu Antwort.

Mike von Fabric hier. Wenn Sie über die Mac-App sichern, klicken Sie auf den Pfeil oben links und dann auf "+ Neue App", um alles neu hinzuzufügen.


Ich habe ein ähnliches Problem. Ich hatte ein Projekt bei einem alten Mac. Stoff hinzugefügt, der mit Beta und all dem guten Zeug erstellt wurde. wie in dos erwähnt. Kopieren Sie das Framework nicht in das Projekt. Ich habe nicht. Projekt läuft gut auf alten Mac. aber wenn ich repo auf einen anderen mac klone. Ich kann nur kompilieren. Meine App wird in der Liste auf dem neuen Mac angezeigt. Es hängt an "Um Ihr Projekt zu konfigurieren, erstellen Sie es jetzt, indem Sie ⌘B drücken", da ich es nicht erstellen kann, da Fabric.h fehlt. irgendeinen Vorschlag für mich? Ich habe versucht, neue App hinzufügen. Fehler erhalten Bildschirm sagt kann hinzufügen. Kontakt Support :(
Alix

Klingt so, als ob beim Einspielen der neuen Dateien etwas beschädigt wurde. Die Verwendung meiner obigen Antwort sollte helfen, das Problem auch auf dem neuen Computer zu beheben, ohne dass sich dies auf andere auswirkt.
Mike Bonnell

1
Ich habe versucht, eine neue App hinzuzufügen, in der meine App bereits in der Liste angezeigt wird. Das erste, was ich nie in einer neuen Maschine hatte. wenn es von der Stoffwebsite gut liest. aber dann bleibe ich beim Build hängen und Spinner dreht das wartende Projekt, um eine Kompilierung zu erhalten, die es nicht gibt, da Fabric.h fehlt. Und es passiert mit allen Projekten. Sobald ich Repo an einen anderen Ort als den Host-Computer klone (wo Fabric zum Projekt hinzugefügt wurde). Alle sind kaputt.
Alix

9
@ MikeB können wir einfach App im Web erstellen und Cocoapods verwenden, ich mag die Fabric Mac App nicht
onmyway133

3
Habt ihr dieses Problem schon gelöst? Ich habe das gleiche Problem und kann Ihre obigen Schritte nicht ausführen, da ich meine App aufgrund des Fehlers "Framework nicht gefunden Fabric" nicht erstellen kann. Und auch auf jeden Fall gerne Stoff in Cocoapods haben.
Berilcetin

164

Gehen Sie in die Build-Einstellungen Ihres Ziels. Suchen Sie nach "Debug Information Format". Setzen Sie dies von "DWARF" sowohl im Debug als auch in der Version auf "DWARF with dSYM File".


7
Vielen Dank! Dies ist das Update für Xcode 10 und Mojave!
Mark

Dies ist die Antwort, nach der ich gesucht habe, nichts anderes hat funktioniert!
Bogdan Razvan

1
Dies sollte Teil der Dokumentation sein. Danke vielmals.
pavan309

1
Diese Antwort muss stattdessen als richtig markiert werden!
haik.ampardjian

1
Das funktioniert bei mir nicht. Kann jemand vorschlagen, was hier noch getan werden kann, um dieses Problem zu lösen? Danke
Aanchal Chaurasia

25

Wenn Sie den Ressourcennavigator überprüfen, wird möglicherweise die folgende Meldung angezeigt:

"DEBUG_INFORMATION_FORMAT sollte für alle Konfigurationen auf" Zwerg mit Dsym "gesetzt sein. Dies kann auch ein Zeitproblem sein. Stellen Sie sicher, dass die Erstellungsphase des Fabric-Ausführungsskripts die letzte Erstellungsphase ist und keine anderen Skripte den dSYM von dem Speicherort verschoben haben, den Xcode generiert hat .EcreditWebWrapper.app.dSYM kann nicht im Pfad verarbeitet werden. "

Gehen Sie zu Build Settings und suchen Sie nach "Debug Information Format". Stellen Sie sicher, dass "Debug" auf "DWARF mit dSYM-Datei" eingestellt ist.

Ohne die dSYM-Datei funktioniert Fabric nicht.


6

Wie bei Xcode 10.2.1 funktioniert die automatische Installation über die Fabric Mac-App nicht mehr. Neue Apps können nicht über die Schritt-für-Schritt-Anleitung für neue Apps hinzugefügt werden.

Sie müssen die manuellen Installationsanweisungen befolgen . Laden Sie die beiden Frameworks herunter und fügen Sie sie in Ihren Xcode-Arbeitsbereich ein. Fügen Sie dann die Phase "Build-Skript ausführen" (und die zugehörigen Fabric-Codes) hinzu und erstellen Sie die App. Zuletzt (sehr wichtig) führen Sie die App auf einem tatsächlichen Gerät aus.

Sobald die App erfolgreich gestartet wurde, sind die neuen App-Informationen sowohl im Fabric-Dashboard als auch in der Fabric Mac-App verfügbar (die App muss neu gestartet werden, um die neue App anzuzeigen).


Hier sind die Schritte:

  1. Laden Sie die 2 Frameworks herunter
  2. Ziehen Sie in Ihr Projekt, in dem sich Ihr App-Delegierter befindet (stellen Sie sicher, dass "Elemente bei Bedarf kopieren" aktiviert ist).
  3. Kompilieren Sie das Projekt / den Arbeitsbereich in Xcode
  4. Fügen Sie die "Skriptphase ausführen" wie hier beschrieben hinzu . Beachten Sie, dass für Xcode 10+ eine zusätzliche Konfiguration unter erforderlich istInput Files
  5. Fügen Sie die erforderlichen importCodes und Initialisierungscodes in App Delegate hinzu
  6. Fügen Sie die Fabric-API-Schlüssel hinzu Info.plist
  7. Kompilieren Sie erneut
  8. Führen Sie die App auf einem realen Gerät aus. Sie sehen die Zeile Crashlyticsim Xcode-Protokoll. Wenn kein Protokoll angezeigt wird, wird überprüft, ob Ihr aktives Schema OS_ACTIVITY_MODEEinstellungen enthält . defaultStellen Sie es auf ein, wenn die aktuelle Einstellung ist disabled.
  9. Wenn die Zeile Crashlytics angezeigt wird, funktioniert die manuelle Installation. Ihre App wird im Fabric Online-Dashboard angezeigt.

Ich habe als Anweisung getan. Funktioniert immer noch nicht. andere vorgeschlagene Lösungen funktionieren ebenfalls nicht. Hast du eine Idee?
Ibrahim

Ich habe die Schritte in meiner Antwort hinzugefügt. ich hoffe es hilft.
Raptor

Hallo @Raptor, ich dachte, etwas funktioniert nicht mit der neuesten Xcode-Version ... Ich habe Ihre Schritte befolgt und sehe in den Protokollen Dinge wie: [Crashlytics] Version 3.13.4 (143) [Crashlytics] Running on iPhone10,6, 12.2.0 (16E227) [Fabric] Initialized with kit versions: { "com.twitter.answers.ios" = "1.4.1"; "com.twitter.crashlytics.ios" = "3.13.4"; "io.fabric.sdk.ios" = "1.10.2"; }`[Fabric] -Einstellungen erfolgreich heruntergeladen` .... Wird aber immer noch nicht auf meiner angezeigt Armaturenbrett
Emiliomarin

Es sollte im Fabric-Dashboard angezeigt werden. Stellen Sie sicher, dass Sie die richtige App im Dashboard auswählen.
Raptor

Das Ausführen der App auf dem Gerät ist von entscheidender Bedeutung. Um auch meinen ersten Absturzbericht zu erhalten, musste der Code implementiert werden, der Abstürze erzwingt, und dann erneut auf dem Gerät bereitgestellt werden (im Gegensatz zum erneuten Öffnen der App auf dem Gerät selbst), da der Neustart der App über XCode den Absturzbericht sendet.
Pigpocket

5

Ich habe dieses Problem folgendermaßen gelöst. Dem Rat von oben folgend, fügte ich Crashlytics eine neue App hinzu. Als ich die neue Erstellungsphase "Skript ausführen" hinzugefügt habe, habe ich diesen Text einfach kopiert und über den vorherigen (mit Crashlytics erstellten) eingefügt. Ich habe auch das Kontrollkästchen "Skript nur bei der Installation ausführen" deaktiviert.

Danach habe ich das Hinzufügen einer neuen App abgebrochen und bin zum UPGRADE zurückgekehrt. In diesem Moment können Sie beim Erstellen der App zum nächsten Schritt übergehen, und Sie bleiben nicht mehr auf diesem Bildschirm hängen.


1
Hilft auch nicht.
Dmitry

5

Ich war auch in den Build-Phasen festgefahren.

Ich habe auch deaktiviert "Run script only when installing"und erneut Befehl + B gedrückt und bin dann zum nächsten Schritt übergegangen.


Das war alles was ich tun musste! Viel einfacher als eine neue App neu
Jake T.

5

Wenn das Skript nicht ausgeführt wird, haben Sie möglicherweise das Kontrollkästchen "Skript nur bei Installation ausführen" im Abschnitt "Skript ausführen" aktiviert. Ich hoffe, es hilft


In Xcode 12 heißt es "Basierend auf Abhängigkeitsanalyse". Es fing an, für mich zu arbeiten, als ich es ungeprüft habe.
Jewgenij Leychenko

3

TL; DR

Tippen Sie auf Ihr Schema -> Schema bearbeiten -> Build-Konfiguration auf "Release" setzen.

Erläuterung:

Die am häufigsten gewählte Antwort klingt ungefähr richtig, aber es gibt Situationen, in denen Sie in Debug-Builds keine Crashlytics benötigen (wer möchte, dass Abstürze gesendet werden, wenn Sie nur Ihren Code entwickeln und damit experimentieren?). In diesem Fall sollten Sie Crashlytics deaktivieren, indem Sie die Debug-Kompilierungsflags (außerhalb des Geltungsbereichs dieser Antwort) aktivieren und zum ersten Mal während der Installation eine App zur Veröffentlichung erstellen, um Crashlytics mitzuteilen, dass Sie eine App erstellt haben.


2

Ich hatte heute das gleiche Problem. Das Problem war, dass ich das Run-Skript nicht hatte:

./Fabric.framework/run <api key>

in meinem Projekt. Sobald ich das wieder hineingesteckt habe, hat alles perfekt funktioniert. Ich habe auch mein Projekt bereinigt und abgeleitete Daten gelöscht, nur um sicherzugehen.


Und es muss in Zeile 1 sein
Codetard

2

Sie müssen überprüfen, ob Ihre Bereitstellungszielversion aufgrund von "Fabric's minimale iOS-Version ist 6.0".


2

Ich konnte die Fabric-App nur dazu bringen, den Installationsprozess fortzusetzen, nachdem ich mein Build-Ziel auf "Generisches iOS-Gerät" gesetzt und ein Archiv über das Menü "Produkt"> "Archiv" erstellt hatte.

Das einfache Erstellen der App oder das Ausführen auf einem Emulator scheint die Fabric-App nicht zum Fortfahren zu veranlassen.


Das Setzen des Build-Ziels auf "Generisches iOS-Gerät" und wahrscheinlich das Setzen des Debug-Informationsformats auf "DWARF mit dSYM-Datei" löste das Problem für mich
Skofgar

2

Wenn Sie Xcode 10 verwenden .

Projektnavigator -> Ihr Projekt -> Ziele -> Phasen erstellen -> Ihr Skript für Fabric ausführen -> Eingabedateien -> "+" (Eingabedatei hinzufügen) -> Feld löschen und über diese Zeile hinaus:

$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

Stellen Sie sicher, dass Sie Folgendes entfernen :$(SRCROOT)/

Geben Sie hier die Bildbeschreibung ein


1

In der Erstellungsphase "Skript ausführen" wird Folgendes aufgerufen:

./Crashlytics.framework/run <your_api_key_here>

Vielleicht haben Sie einige Bedingungen hinzugefügt, um es nur bei bestimmten Builds auszulösen, wie:

releaseConfig="Release"

if [ "$releaseConfig" = "${CONFIGURATION}" ]; then  
    echo "Running Crashlytics"
    ./Crashlytics.framework/run <your_api_key_here>
fi

damit es nicht nur auf ⌘B ausgelöst wird

Siehe https://dev.twitter.com/crashlytics/ios/advanced-setup


1

In meiner Situation habe ich alle Schritte korrekt ausgeführt, bin aber beim Schritt "Build-Phase hinzufügen" hängen geblieben. Dann habe ich gerade Stoff neu gestartet und alles funktioniert gut

Es gibt auch einige andere mögliche Aktionen:

1) Starten Sie einfach Fabric, Xcode und Ihren Mac neu. 2) Auch wenn Sie Cocoapods verwenden, ändern Sie die Build-Phasenlinie von

./Crashlytics.framework/run [yourAPIKey] 

zu

"${PODS_ROOT}/Fabric/run" [yourAPIKey]

3) Warten Sie nach dem Erstellen des Projekts, bis Fabric nicht mehr reagiert, eine Weile. Auf meinem Mac dauerte es ungefähr eine Minute.


Beeindruckend. Ich habe gerade eine Stunde damit verbracht, dies zu debuggen, und das war der Grund dafür.
JRam13

1
Das bisschen über die Fabric App, die nicht reagierte, dachte, sie wäre abgestürzt, aber ich war einfach nicht geduldig genug.
Ryan

1

Vielen Dank, ich habe das Problem durch Entfernen von Ordnern gelöst:

~ / Library / Caches / com.crashlytics.data
~ / Library / Caches / com.crashlytics.mac

Nicht zu vergessen das ~/Library/Caches/io.fabric.sdk.mac.dataauch
Raptor

0

Bitte überprüfen Sie, ob das von Ihnen hinzugefügte Ausführungsskript zu Ihrem tatsächlichen Ziel gehört. Wenn Sie es zu einem Testziel hinzufügen, wird es erst fortgesetzt, wenn Sie es zum tatsächlichen Ziel hinzufügen


0

Keine der Lösungen hier hat bei mir funktioniert. Das Szenario für mich war, dass jemand anderes das Fabric-Framework zu unserem Projekt hinzugefügt und es dem Repo übergeben hat. Das Ausführungsskript auf ihrem Computer hat das Fabric Plugin gestartet / ausgelöst, aber auf meinem Computer nicht gestartet / ausgelöst, obwohl es keine Fehler gemeldet hat.

Die Lösung bestand darin, ein separates Projekt zu erstellen, bei dem Cocoapods dieselbe Fabric-Version herunterladen und das Ausführungsskript in unserem Projekt / Repo (und dasjenige, auf das im Ausführungsskript des Ziels verwiesen wird) durch die von Cocoapods heruntergeladene Version ersetzen. Neu erstellen und dann würde das Plugin antworten.

Beim Vergleich der beiden Ausführungsskriptdateien unterscheiden sie sich drastisch, aber das Ausführungsskript von Cocoapods war keine flache Textdatei und nicht lesbar. Ich bin mir also nicht sicher, was zwischen den Skripten unterschiedlich war, aber wir haben irgendwie unterschiedliche Versionen des Skripts erhalten, während wir dieselbe Version von Fabric verwendet haben.


0

Was ich falsch gemacht habe, war das Hinzufügen des Skripts zur Erstellungsphase des Pods-Projekts anstelle der Erstellungsphase des Hauptprojekts . Das Hinzufügen zur Erstellungsphase des Hauptprojekts löste das Problem.


0

Wenn Sie das Ziel duplizieren, entfernen Sie das Ausführungsskript aus der Erstellungsphase und fügen Sie es erneut hinzu, um das Problem zu beheben.


0

Wenn Sie mehrere ZIELE haben,

Überprüfen Sie, ob Ihre Schemaauswahl korrekt ist, bevor Sie ein Projekt erstellen.


0

Für Xcode 10. Fügen Sie den von Ihrer App erstellten Speicherort Info.plist zum Feld Eingabedateien der Erstellungsphase hinzu:

$ (BUILT_PRODUCTS_DIR) / $ (INFOPLIST_PATH)

Dies hat mein Problem gelöst. Ich hoffe, dies kann andere Probleme lösen.


0

Es stellte sich heraus, dass ich nicht genügend Berechtigungen hatte, um ein neues Projekt in Fabric zu erstellen. Ein Upgrade von Member, Adminum das Problem zu beheben.


0

In meinem Fall hat das Entfernen einer App aus geholfen. 1) Entfernen Sie die App aus Fabric. 2) Befolgen Sie alle Schritte erneut, um die App hinzuzufügen und Crashlytics zu installieren.


0

Nichts hat mir geholfen. Jetzt fängt Fabric meine Archiverstellung ein. Aber ich erstelle die Archive über Fastlanes build_app.


0

Öffnen Sie das Projekt in einer höheren Version von Xcode . Dies löste mein Problem nach vielen Stunden Verschwendung.

Mein Projekt wurde auf Xcode 10.2 erstellt und ich wurde auf Xcode 10.1 ausgeführt, aber als ich dasselbe Projekt auf Xocode 11 ausführte , war der Build erfolgreich.


-1

Gehen Sie zum Ordner /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/<CURRENT_IOS_SDK>/usr/lib/und löschen Sie alle .dylib Dateien.

Es hat bei mir funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.