Search code examples
xcodegoogle-fabricxcode10

Google Fabric in Xcode 10 beta


I installed Xcode 10 Beta 6 and I am updating everything and in this process I have run into a small issue with Fabric. Fabric's website has special instructions for Xcode 10 that says:

Xcode 10 Instructions

When I am in Xcode 10 I go to Build Phases an on the Run Script that has my Fabric key there is a + sign under the section Input Fields

When I click the + it automatically generates $(SRCROOT)/newInputFile where newInputFile is automatically highlighted.

I'm not understanding Fabric's instructions. Do I copy the $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) after $(SRCROOT)/ Do I replace INFOPLIST_PATH with the file path to my info.plist?

I've tried all these options but Fabric is still crashing in Xcode 10. I know it is Fabric because I've commented out Fabric.with([Crashlytics.self]) in my App Delegate's didFinishLaunchingWithOptions


Solution

  • I did exactly what was recommend by Mahdi RB. Also followed the steps on official manual guide, didn't work.

    When I build using XCode I see it processes about 2k tasks. The fabric builds usually works when I start the machine, open xcode and execute archive. After that the build starts to break most of the time. I'm using the latest fabric & crashlytics downloaded on 03/OCT/18. It's really weird as it works for my other projects, it's just this one that fails. This started with XCode 10 - Version 10.0 (10A255). It was working with previous XCode 9.

    This is some proof of what I'm talking:

    XCode pic

    My workaround was to add this command before calling the fabric command. E.g

    sleep 15
    "${PROJECT_DIR}/Fabric.framework/run" aaaaa aaaa
    

    I noticed on my mac console app loads of this error, not sure if it's related:

    IBAgent-iOS - assertion failed - libxpc.dylib - and some numbers here.
    

    Error on 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.
    

    I tried to open that plist link, it points to a shortcut, and that shortcut points to a real file. Not sure why that is failing. My guess it has something to do with files not being present at the time the script is executed. The delay fixes the issue. I hope this can help.

    • I removed the original app names for privacy.