it-swarm.com.de

Google Fabric in Xcode 10 Beta

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:

 Xcode 10 Instructions

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.

12
RubberDucky4444

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:

 XCode pic

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.

  • Ich habe die ursprünglichen App-Namen aus Datenschutzgründen entfernt.
1
Danilo Gomes

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.

 enter image description here

Lesen Sie mehr über diesen Link: https://fabric.io/kits/ios/crashlytics/install

8
Hardik Thakkar

Ich hatte dasselbe Problem, wenn sich Ihre info.plist in Ihrem Stammverzeichnis so befindet: 

Root directory tree

sie sollten $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) so ändern:

Path image

8
Mahdi RB
  1. Fügen Sie die Skriptausführungsphase am Ende der Erstellungsphasen hinzu.
  2. Setzen Sie die Shell für die Skriptphase auf /bin/bash.
  3. 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.
    

Überprüfen Sie das Bild für weitere Informationen

1
shraddha

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.

Quelle

settings image

1
Savas Adar

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.

1

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".

0
EsmaGo

der Fabric Info.plist-Fehler kann durch Ändern der Xcode-Arbeitsbereich-Einstellungen -> Build-Einstellungen -> Legacy-Build-System behoben werden

0
user10375102

Keines der oben genannten funktioniert für mich. Wenn Sie Cocoapods verwenden, gehen Sie folgendermaßen vor.

  1. Fügen Sie $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) zum Abschnitt Eingabedateien beim Ausführen des Skripts hinzu.

  2. Ersetzen Sie ./Fabric.framework/run Durch "${PODS_ROOT}/Fabric/run" Im Feld "Skript ausführen".

  3. 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.

0
Didats Triadi

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.

0
PatrickDotStar