Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing dSYM upload commands if Crashlytics installed with Carthage #4720

Closed
olejnjak opened this issue Jan 22, 2020 · 4 comments
Closed

Missing dSYM upload commands if Crashlytics installed with Carthage #4720

olejnjak opened this issue Jan 22, 2020 · 4 comments

Comments

@olejnjak
Copy link

olejnjak commented Jan 22, 2020

[READ] Step 1: Are you in the right place?

  • For issues or feature requests related to the code in this repository
    file a Github issue.
    • If this is a feature request make sure the issue title starts with "FR:".
  • For general technical questions, post a question on StackOverflow
    with the firebase tag.
  • For general Firebase discussion, use the firebase-talk
    google group.
  • For help troubleshooting your application that does not fall under one
    of the above categories, reach out to the personalized
    Firebase support channel.

[REQUIRED] Step 2: Describe your environment

  • Xcode version: 11.3.1
  • Firebase SDK version: 6.15
  • Firebase Component: Crashlytics
  • Component version: 6.15

[REQUIRED] Step 3: Describe the problem

When Crashlytics is installed using Carthage, dSYM upload scripts are missing.

The issue would be that before making Crashlytics open source and using https://building42.github.io/Specs/Carthage/iOS/Crashlytics.json as source for Carthage, the run and upload-symbols were located under Crashlytics.framework folder in the targeted zip file, now they are outside and Carthage does not copy them to projects Carthage/Build directory.

Is this expected behavior and we are expected to get those commands from somewhere else or is it a bug? Thanks in advance.

Steps to reproduce:

Run in terminal:

echo 'binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseCrashlyticsBinary.json" ~> 6.15' > Cartfile
carthage update
ls -r Carthage/Build/iOS/FirebaseCrashlytics.framework

The run and upload-symbols commands are missing.

Relevant Code:

See above ⬆️

@ryanwilson
Copy link
Member

Thanks for the report - this is working as expected and instructions can be found at the bottom of this section of Carthage.md (search for "For Crashlytics").

I was under the impression that Carthage expected a very specific format and including the binaries inside the .framework was causing issues but I could be wrong.

@jasonhu-g or @paulb777 do you remember the reason for excluding it?

I'll close this as working as intended but we can re-open if something should be done to address this.

@jasonhu-g
Copy link
Contributor

The change was made for a few reasons:

  1. Transparency - Developers can more easily see what is included without embedding executables into the framework.
  2. Size - The framework included in apps will take up less space.
  3. Maintainability - We implemented parts of upload-symbols to Swift at one point. Even though upload-symbols will only run on macOS, Objective-C only apps fail to build because XCode runs scans on files inside the framework and detected Swift code. Moving upload-symbols outside of the framework will give us better maintainability and flexibility.

@olejnjak
Copy link
Author

Thanks for clearing it up 🙂 and is there a way to use Carthage distribution and fetch its corresponding upload-symbols executable? Or it would be safe to always use the version from master branch regardless of Crashlytics version?

@jasonhu-g
Copy link
Contributor

We currently do not know of any Carthage capabilities which allows us to distribute the upload symbols executable alongside with the framework. We will update this thread if things change.

We haven't experienced any changes to upload-symbols where it is tied to a specific version of the SDK. But if you really want to be safe, download the Crashlytics Carthage JSON, follow the link in the JSON file to download the zip file which contains the upload symbols executables for the specific version.

@firebase firebase locked and limited conversation to collaborators Feb 22, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants