Skip to content

AppStore Distribution / Release app does not send crashes due to Exported Symbols File missing __mh_execute_header #5020

Closed
@kondratk

Description

@kondratk

[REQUIRED] Step 1: Describe your environment

  • Xcode version: 11.3.1
  • Firebase SDK version: Firebase/Crashlytics (6.15.0):
  • Firebase Component: Crashlytics
  • Component version: 4.0.0-beta.4
  • Installation method: CocoaPods (select one)

[REQUIRED] Step 2: Describe the problem

We've identified, that after signing the app with AppStore certificate, Firebase Crashlytics stops working. The problem does not occur while signing the app with AdHoc certificate. We are using Apple Distribution Certificate.

The errors we've found in the console:
<Forced crash, re-ran the app>
[Firebase/Crashlytics] Version 4.0.0-beta.4
..
[Firebase/Crashlytics][I-CLS000000] An application must have a valid bundle identifier in its Info.plist
[Firebase/Crashlytics][I-CLS000000] Crash reporting could not be initialized
[Firebase/InstanceID][I-IID003014] Error while reading embedded mobileprovision Error Domain=NSCocoaErrorDomain Code=260 "The file “embedded.mobileprovision” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/private/var/containers/Bundle/Application/71738F66-30A3-4D4E-A60E-85F7FB3614AC/X.app/embedded.mobileprovision, NSUnderlyingError=0x282bc5b00 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}

I've unzipped the ipa file and:

  • there is Info.plist, it contains bundle identifier
  • there is mobileprovision file, looks good.

The app would not even run without files above, so these errors seems like incorrect ones.

Steps to reproduce:

  1. Build the app with AdHoc profile, force a crash - works fine. Crashes are sent to Crashlytics.
  2. Build the app with AppStore profile, distribute via testflight.
  3. Install it from TestFlight, run, force a crash
  4. Re-open the app. Crash should be sent- it is not. Check out logs:
  5. Errors from Step 2 are visible.

Activity

JayachandraA

JayachandraA commented on Mar 9, 2020

@JayachandraA

Crashlytics, I'm also experiencing same problem. This is sending me the crash report in debug mode, but when I use signing the build and push to TestFlight it is not sending me the report.

yasirmturk

yasirmturk commented on Mar 10, 2020

@yasirmturk

Same here 👎

SeeTheInvisible

SeeTheInvisible commented on Mar 10, 2020

@SeeTheInvisible

We also have the same problem

terenceyan

terenceyan commented on Mar 10, 2020

@terenceyan

Also, seeing the same issue with an app not using CocoaPods installation. Using Firebase/Crashlytics (6.16.0).

yasirmturk

yasirmturk commented on Mar 10, 2020

@yasirmturk

I have tried with both pods and with static framework linking using 6.18.0

samedson

samedson commented on Mar 10, 2020

@samedson
Contributor

For others with the same issue, are you seeing the same log from Crashlytics and InstanceID? Eg:

[Firebase/Crashlytics][I-CLS000000] An application must have a valid bundle identifier in its Info.plist
...
[Firebase/InstanceID][I-IID003014] Error while reading embedded mobileprovision Error Domain=NSCocoaErrorDomain Code=260 "The file “embedded.mobileprovision” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/private/var/containers/Bundle/Application/71738F66-30A3-4D4E-A60E-85F7FB3614AC/X.app/embedded.mobileprovision, NSUnderlyingError=0x282bc5b00 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}

Crashlytics gets the app's bundle identifier using [[NSBundle mainBundle] bundleIdentifier] - this seems to be returning empty.

self-assigned this
on Mar 10, 2020
samedson

samedson commented on Mar 10, 2020

@samedson
Contributor

If this is happening with both Firebase 6.15.0 and 6.18.0, it seems unlikely a code change caused this to happen, since many apps have successfully released to the App Store in that timeframe with Crashlytics. I'm trying to figure out what could have changed with Apple's signing that would cause this. It seems like files in general can't be opened from Crashlytics and InstanceID.

  • Are there other errors in the logs that indicate an issue with opening files?
  • Does anyone's app successfully read from the bundle identifier, but see Crashlytics fail to?
kondratk

kondratk commented on Mar 11, 2020

@kondratk
Author

@samedson we are using [[NSBundle mainBundle] bundleIdentifier] in our app, and the method seems like working fine. Only Crashlytics has difficulties with accessing this identifier.

kondratk

kondratk commented on Mar 11, 2020

@kondratk
Author

@samedson

  • Are there other errors in the logs that indicate an issue with opening files?

Haven't found any additional errors.

  • Does anyone's app successfully read from the bundle identifier, but see Crashlytics fail to?

We are reading other files like translations of third party SDK's, so access is working fine. Also getting [[NSBundle mainBundle] bundleIdentifier] works as expected.

samedson

samedson commented on Mar 11, 2020

@samedson
Contributor

Want to ask a few more questions. I still haven't determined the root cause of the issue - wondering if maybe something changed with the timing of calling [NSBundle mainBundle] in iOS.

  • How are you initializing Firebase? Is it with a call to [FIRApp configure] in the App Delegate?
  • Was there some point where Crashlytics stopped working in new versions of your app, or is this the first time you've tried to ship with Crashlytics?
  • What is your CocoaPods configuration?
terenceyan

terenceyan commented on Mar 13, 2020

@terenceyan

@samedson

How are you initializing Firebase? Is it with a call to [FIRApp configure] in the App Delegate?

Yes

Was there some point where Crashlytics stopped working in new versions of your app, or is this the first time you've tried to ship with Crashlytics?

A new app under development but on TestFlight.

What is your CocoaPods configuration?

Not using CocoaPods.

kondratk

kondratk commented on Mar 18, 2020

@kondratk
Author

@samedson

  • How are you initializing Firebase? Is it with a call to [FIRApp configure] in the App Delegate?

FirebaseApp.configure() in App Delegate

  • Was there some point where Crashlytics stopped working in new versions of your app, or is this the first time you've tried to ship with Crashlytics?

We've just tried to migrate from Fabric SDK to Firebase SDK. There were no issues with Fabric SDK, so we've migrated back. Today I've received an email from Google that Fabric services will be held up and running until early May.

  • What is your CocoaPods configuration?
  pod 'Firebase/Core'
  pod 'Firebase/Messaging'
  pod 'Firebase/RemoteConfig'
  pod 'Firebase/Crashlytics'
  pod 'Firebase/Analytics'

36 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @paulb777@yasirmturk@samedson@TKBurner@terenceyan

      Issue actions

        AppStore Distribution / Release app does not send crashes due to Exported Symbols File missing __mh_execute_header · Issue #5020 · firebase/firebase-ios-sdk