Ich habe Xcode 10 Beta 6 installiert und aktualisiere alles. Dabei ist mir ein kleines Problem mit Fabric begegnet. Auf der Fabric-Website finden Sie spezielle Anweisungen für Xcode 10:
Wenn ich in Xcode 10 bin, gehe ich zu Bauphasen und im Ausführungsskript, das meinen Fabric-Schlüssel hat, gibt es ein + -Zeichen unter dem Abschnitt Input Fields
Wenn ich auf das + klicke, generiert es automatisch $(SRCROOT)/newInputFile
, wobei newInputFile
automatisch hervorgehoben wird.
Ich verstehe die Anweisungen von Fabric nicht. Kopiere ich die $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
nach $(SRCROOT)/
Ersetze ich INFOPLIST_PATH durch den Dateipfad zu meiner info.plist?
Ich habe alle diese Optionen ausprobiert, aber Fabric stürzt in Xcode 10 immer noch ab. Ich weiß, dass es Fabric ist, weil ich Fabric.with([Crashlytics.self])
in der didFinishLaunchingWithOptions
meines App-Delegaten auskommentiert habe.
Ich habe genau das gemacht, was von Mahdi RB empfohlen wurde. Befolgen Sie auch die Schritte auf offizielle Bedienungsanleitung , hat nicht funktioniert.
Wenn ich mit XCode baue, sehe ich, dass es etwa 2k-Tasks verarbeitet. Die Fabric-Builds funktionieren normalerweise, wenn ich die Maschine starte, xcode öffne und Archiv ausführe. Danach bricht der Build die meiste Zeit. Ich verwende die neuesten Stoffe und Crashlytics, die am 03/OCT/18 heruntergeladen wurden. Es ist wirklich komisch, da es für meine anderen Projekte funktioniert. Nur dieses Projekt schlägt fehl. Dies begann mit XCode 10 - Version 10.0 (10A255). Es arbeitete mit dem vorherigen XCode 9.
Dies ist ein Beweis für das, worüber ich spreche:
Mein Workaround bestand darin, diesen Befehl vor dem Aufruf des Fabric-Befehls hinzuzufügen. Z.B
sleep 15
"${PROJECT_DIR}/Fabric.framework/run" aaaaa aaaa
Ich habe festgestellt, dass dieser Fehler auf meiner Mac-Konsolen-App geladen wurde. Ich bin mir nicht sicher, ob er damit zusammenhängt:
IBAgent-iOS - assertion failed - libxpc.dylib - and some numbers here.
Fehler beim XCode
2018-10-03 13:53:58.698 uploadDSYM[46168:550157] Fabric.framework/run 1.7.2 (210)
2018-10-03 13:53:58.704 uploadDSYM[46168:550157] Using API Key: "123"
2018-10-03 13:53:58.704 uploadDSYM[46168:550157] Launched uploader in validation mode
error: Fabric: Info.plist Error
Unable to process Info.plist at path /Users/someuser/Library/Developer/Xcode/DerivedData/SampleApp-amwweapikvrbgafmmnyeyorkiufq/Build/Intermediates.noindex/ArchiveIntermediates/SampleApp/BuildProductsPath/Release-iphoneos/SampleApp.app/Info.plist
This could be a timing issue, make sure the Fabric run script build phase is the last build phase and no other scripts have moved Inspector.app from the location Xcode generated it. You can also add '$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)' as an "Input Files" dependency for your Fabric run script build phase.
Ich habe versucht, diesen plist-Link zu öffnen, er zeigt auf eine Verknüpfung, und diese Verknüpfung zeigt auf eine echte Datei. Nicht sicher, warum das nicht funktioniert. Ich vermute, es hat etwas damit zu tun, dass Dateien zum Zeitpunkt der Ausführung des Skripts nicht vorhanden sind. Die Verzögerung behebt das Problem. Ich hoffe das kann helfen.
Nur für Xcode 10: Ihr Benutzer ist der Benutzer, der bei der endgültigen Einrichtung der Fabric Probleme hatte.
Ab Xcode 10 müssen Sie im Feld Eingabedateien von Build Phase eine weitere Einrichtung vornehmen.
Sie müssen einfach dieses $ (BUILT_PRODUCTS_DIR)/$ (INFOPLIST_PATH) kopieren und in das Eingabefeld der Eingabedateien von Build Phase unter Run Script einfügen.
Lesen Sie mehr über diesen Link: https://fabric.io/kits/ios/crashlytics/install
Ich hatte dasselbe Problem, wenn sich Ihre info.plist in Ihrem Stammverzeichnis so befindet:
sie sollten $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
so ändern:
/bin/bash
.Setze Eingabedateien auf:
(1) $(PROJECT_DIR)/$(INFOPLIST_FILE).
(2) $(PROJECT_DIR)/Scripts/set_bundle_build_number.sh
Change path to path of script so changes you make to the script
cause a re-run.
(3) $(TARGET_BUILD_DIR)/$(INFOPLIST_PATH)
Fixes XCode 10 issues of duplicate output phases.
Gehen Sie in die Build-Einstellungen Ihres Ziels. Suchen Sie nach "Debug Information Format". Stellen Sie dies von "DWARF" in Debug und Release auf "DWARF mit dSYM-Datei" ein.
Ich habe dieses Problem behoben, indem ich das "Skript ausführen" an den unteren Rand der Erstellungsphasen verschoben habe. Natürlich habe ich zu "DWARF with dSYM File" und $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
gewechselt.
Für mich wurde der Archivierungsfehler behoben, indem ich das Build-System in "Legacy Build System" änderte. Um das Build-System zu ändern, gehen Sie zu Datei -> Arbeitsbereichseinstellungen und ändern Sie das Build-System von der Standardeinstellung "Neues Build-System" in "Legacy-Build-System".
der Fabric Info.plist-Fehler kann durch Ändern der Xcode-Arbeitsbereich-Einstellungen -> Build-Einstellungen -> Legacy-Build-System behoben werden
Keines der oben genannten funktioniert für mich. Wenn Sie Cocoapods verwenden, gehen Sie folgendermaßen vor.
Fügen Sie $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
zum Abschnitt Eingabedateien beim Ausführen des Skripts hinzu.
Ersetzen Sie ./Fabric.framework/run
Durch "${PODS_ROOT}/Fabric/run"
Im Feld "Skript ausführen".
Gehen Sie zu Build Settings, suchen Sie nach Debug Information
Und ändern Sie es in DWARF with dSYM File
.
Zumindest hat es bei mir funktioniert.
Die Lösung für mich war, die runden Klammern durch geschweifte Klammern wie diese zu ersetzen
${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}
Sie können überprüfen, ob der Pfad tatsächlich vorhanden ist, indem Sie in der Skriptphase echo $(BUILT_PRODUCTS_DIR)
aufrufen. Die Verwendung von runden Klammern gab mir folgende Informationen in der Xcode-Erstellungskonsole "BUILT_PRODUCTS_DIR: Befehl nicht gefunden". Das Ersetzen der runden Klammern durch geschweifte Klammern wird den aktuellen Pfad ausgeben und daher funktionierte das Skript endlich für mich.