firebase-ios-sdk
firebase-ios-sdk copied to clipboard
Upload-symbols has started to fail after update to Xcode14
Description
We have updated to Xcode14, and with that we are now having problems uploading symbols to crashlytics. The "fun" part is that it only fails on our CI server, whereas it's still possible to run same command locally.
Usually we use the fastlane action to do the upload, but to see if we could get more info about the error, we have tried a manual shellscript step which still leads to the same error.
Failed to upload symbols Exit status of command '[fullPath]/Pods/FirebaseCrashlytics/upload-symbols -d -gsp [fullPath]/Source/assets/firebase/GoogleService-Info.plist -p ios [fullPath]/appName.app.dSYM.zip' was instead of 0.
One thing that stands out is that there is no exit status - it's just a blank. I have tried to force other errors - e.g. not specifying the -gsp or use invalid credentials, and those errors show up nicely with more valid error info, so both the plist and the dSYM.zip should be valid.
Any chance you can provide some insights/hints to what can be causing a blank. exit status from the upload-symbols
?
Reproducing the issue
Haven't been able to identify how to reproduce it locally - it's only on CI it behaves like this.
Firebase SDK Version
9.6.0
Xcode Version
14.0
Installation Method
CocoaPods
Firebase Product(s)
Analytics, App Distribution, Crashlytics, Messaging, Performance, Remote Config
Targeted Platforms
iOS
Relevant Log Output
No response
If using Swift Package Manager, the project's Package.resolved
Expand Package.resolved
snippet
Replace this line with the contents of your Package.resolved.
If using CocoaPods, the project's Podfile.lock
Expand Podfile.lock
snippet
PODS:
- CTPanoramaView (1.5)
- DynamicBlurView (4.1.0)
- EcgObjCLibrary (1.2.0):
- FLKAutoLayout (= 1.0.1)
- Objection (= 1.6.1)
- OCMock (~> 3)
- PDKeychainBindingsController (= 0.0.1)
- EcgObjCTestLibrary (0.2.0):
- Objection (= 1.6.1)
- OCMock (~> 3)
- Firebase/Analytics (9.6.0):
- Firebase/Core
- Firebase/Core (9.6.0):
- Firebase/CoreOnly
- FirebaseAnalytics (~> 9.6.0)
- Firebase/CoreOnly (9.6.0):
- FirebaseCore (= 9.6.0)
- Firebase/Crashlytics (9.6.0):
- Firebase/CoreOnly
- FirebaseCrashlytics (~> 9.6.0)
- Firebase/Messaging (9.6.0):
- Firebase/CoreOnly
- FirebaseMessaging (~> 9.6.0)
- Firebase/Performance (9.6.0):
- Firebase/CoreOnly
- FirebasePerformance (~> 9.6.0)
- Firebase/RemoteConfig (9.6.0):
- Firebase/CoreOnly
- FirebaseRemoteConfig (~> 9.6.0)
- FirebaseABTesting (9.6.0):
- FirebaseCore (~> 9.0)
- FirebaseAnalytics (9.6.0):
- FirebaseAnalytics/AdIdSupport (= 9.6.0)
- FirebaseCore (~> 9.0)
- FirebaseInstallations (~> 9.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.7)
- GoogleUtilities/MethodSwizzler (~> 7.7)
- GoogleUtilities/Network (~> 7.7)
- "GoogleUtilities/NSData+zlib (~> 7.7)"
- nanopb (< 2.30910.0, >= 2.30908.0)
- FirebaseAnalytics/AdIdSupport (9.6.0):
- FirebaseCore (~> 9.0)
- FirebaseInstallations (~> 9.0)
- GoogleAppMeasurement (= 9.6.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.7)
- GoogleUtilities/MethodSwizzler (~> 7.7)
- GoogleUtilities/Network (~> 7.7)
- "GoogleUtilities/NSData+zlib (~> 7.7)"
- nanopb (< 2.30910.0, >= 2.30908.0)
- FirebaseCore (9.6.0):
- FirebaseCoreDiagnostics (~> 9.0)
- FirebaseCoreInternal (~> 9.0)
- GoogleUtilities/Environment (~> 7.7)
- GoogleUtilities/Logger (~> 7.7)
- FirebaseCoreDiagnostics (9.6.0):
- GoogleDataTransport (< 10.0.0, >= 9.1.4)
- GoogleUtilities/Environment (~> 7.7)
- GoogleUtilities/Logger (~> 7.7)
- nanopb (< 2.30910.0, >= 2.30908.0)
- FirebaseCoreInternal (9.6.0):
- "GoogleUtilities/NSData+zlib (~> 7.7)"
- FirebaseCrashlytics (9.6.0):
- FirebaseCore (~> 9.0)
- FirebaseInstallations (~> 9.0)
- GoogleDataTransport (< 10.0.0, >= 9.1.4)
- GoogleUtilities/Environment (~> 7.7)
- nanopb (< 2.30910.0, >= 2.30908.0)
- PromisesObjC (~> 2.1)
- FirebaseInstallations (9.6.0):
- FirebaseCore (~> 9.0)
- GoogleUtilities/Environment (~> 7.7)
- GoogleUtilities/UserDefaults (~> 7.7)
- PromisesObjC (~> 2.1)
- FirebaseMessaging (9.6.0):
- FirebaseCore (~> 9.0)
- FirebaseInstallations (~> 9.0)
- GoogleDataTransport (< 10.0.0, >= 9.1.4)
- GoogleUtilities/AppDelegateSwizzler (~> 7.7)
- GoogleUtilities/Environment (~> 7.7)
- GoogleUtilities/Reachability (~> 7.7)
- GoogleUtilities/UserDefaults (~> 7.7)
- nanopb (< 2.30910.0, >= 2.30908.0)
- FirebasePerformance (9.6.0):
- FirebaseCore (~> 9.0)
- FirebaseInstallations (~> 9.0)
- FirebaseRemoteConfig (~> 9.0)
- GoogleDataTransport (< 10.0.0, >= 9.1.4)
- GoogleUtilities/Environment (~> 7.7)
- GoogleUtilities/ISASwizzler (~> 7.7)
- GoogleUtilities/MethodSwizzler (~> 7.7)
- nanopb (< 2.30910.0, >= 2.30908.0)
- FirebaseRemoteConfig (9.6.0):
- FirebaseABTesting (~> 9.0)
- FirebaseCore (~> 9.0)
- FirebaseInstallations (~> 9.0)
- GoogleUtilities/Environment (~> 7.7)
- "GoogleUtilities/NSData+zlib (~> 7.7)"
- FLKAutoLayout (1.0.1)
- GCDWebServer (3.5.4):
- GCDWebServer/Core (= 3.5.4)
- GCDWebServer/Core (3.5.4)
- Google-Mobile-Ads-SDK (9.5.0):
- GoogleAppMeasurement (< 10.0, >= 7.0)
- GoogleUserMessagingPlatform (>= 1.1)
- GoogleAnalytics (3.20.0)
- GoogleAppMeasurement (9.6.0):
- GoogleAppMeasurement/AdIdSupport (= 9.6.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.7)
- GoogleUtilities/MethodSwizzler (~> 7.7)
- GoogleUtilities/Network (~> 7.7)
- "GoogleUtilities/NSData+zlib (~> 7.7)"
- nanopb (< 2.30910.0, >= 2.30908.0)
- GoogleAppMeasurement/AdIdSupport (9.6.0):
- GoogleAppMeasurement/WithoutAdIdSupport (= 9.6.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.7)
- GoogleUtilities/MethodSwizzler (~> 7.7)
- GoogleUtilities/Network (~> 7.7)
- "GoogleUtilities/NSData+zlib (~> 7.7)"
- nanopb (< 2.30910.0, >= 2.30908.0)
- GoogleAppMeasurement/WithoutAdIdSupport (9.6.0):
- GoogleUtilities/AppDelegateSwizzler (~> 7.7)
- GoogleUtilities/MethodSwizzler (~> 7.7)
- GoogleUtilities/Network (~> 7.7)
- "GoogleUtilities/NSData+zlib (~> 7.7)"
- nanopb (< 2.30910.0, >= 2.30908.0)
- GoogleDataTransport (9.2.0):
- GoogleUtilities/Environment (~> 7.7)
- nanopb (< 2.30910.0, >= 2.30908.0)
- PromisesObjC (< 3.0, >= 1.2)
- GoogleTagManager (7.4.1):
- FirebaseAnalytics (< 10.0, >= 8.0)
- GoogleAnalytics (~> 3.20)
- GoogleUserMessagingPlatform (2.0.1)
- GoogleUtilities/AppDelegateSwizzler (7.8.0):
- GoogleUtilities/Environment
- GoogleUtilities/Logger
- GoogleUtilities/Network
- GoogleUtilities/Environment (7.8.0):
- PromisesObjC (< 3.0, >= 1.2)
- GoogleUtilities/ISASwizzler (7.8.0)
- GoogleUtilities/Logger (7.8.0):
- GoogleUtilities/Environment
- GoogleUtilities/MethodSwizzler (7.8.0):
- GoogleUtilities/Logger
- GoogleUtilities/Network (7.8.0):
- GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Reachability
- "GoogleUtilities/NSData+zlib (7.8.0)"
- GoogleUtilities/Reachability (7.8.0):
- GoogleUtilities/Logger
- GoogleUtilities/UserDefaults (7.8.0):
- GoogleUtilities/Logger
- HMSegmentedControl (1.5.6)
- IGListDiffKit (4.0.0)
- IGListKit (4.0.0):
- IGListDiffKit (= 4.0.0)
- nanopb (2.30909.0):
- nanopb/decode (= 2.30909.0)
- nanopb/encode (= 2.30909.0)
- nanopb/decode (2.30909.0)
- nanopb/encode (2.30909.0)
- Objection (1.6.1)
- OCMock (3.4.3)
- PDKeychainBindingsController (0.0.1)
- PopupDialog (1.1.1):
- DynamicBlurView (~> 4.0)
- PrebidMobile (1.12):
- PrebidMobile/core (= 1.12)
- PrebidMobile/core (1.12)
- PromisesObjC (2.1.1)
- RangeSeekSlider (1.9.0)
- SBTUITestTunnelClient (8.3.0):
- SBTUITestTunnelCommon
- SBTUITestTunnelCommon (8.3.0)
- SBTUITestTunnelServer (8.3.0):
- GCDWebServer
- SBTUITestTunnelCommon
- SKPhotoBrowser (7.1.0)
- UIImageViewAlignedSwift (0.8.2)
DEPENDENCIES:
- CTPanoramaView (= 1.5)
- EcgObjCLibrary (from `PrivatePods/EcgObjCLibrary`)
- EcgObjCTestLibrary (from `PrivatePods/EcgObjCTestLibrary`)
- Firebase/Analytics (= 9.6.0)
- Firebase/Core (= 9.6.0)
- Firebase/Crashlytics (= 9.6.0)
- Firebase/Messaging (= 9.6.0)
- Firebase/Performance (= 9.6.0)
- Firebase/RemoteConfig (= 9.6.0)
- FLKAutoLayout (= 1.0.1)
- GCDWebServer
- Google-Mobile-Ads-SDK (= 9.5.0)
- GoogleTagManager (= 7.4.1)
- HMSegmentedControl (= 1.5.6)
- IGListKit (~> 4.0)
- Objection (= 1.6.1)
- OCMock (~> 3.4.3)
- PDKeychainBindingsController (~> 0.0)
- PopupDialog (= 1.1.1)
- PrebidMobile (= 1.12)
- RangeSeekSlider (from `https://github.com/technology-ebay-de/RangeSeekSlider.git`, tag `1.9.0`)
- SBTUITestTunnelClient (= 8.3.0)
- SBTUITestTunnelServer (= 8.3.0)
- SKPhotoBrowser (= 7.1.0)
- UIImageViewAlignedSwift (= 0.8.2)
SPEC REPOS:
trunk:
- CTPanoramaView
- DynamicBlurView
- Firebase
- FirebaseABTesting
- FirebaseAnalytics
- FirebaseCore
- FirebaseCoreDiagnostics
- FirebaseCoreInternal
- FirebaseCrashlytics
- FirebaseInstallations
- FirebaseMessaging
- FirebasePerformance
- FirebaseRemoteConfig
- FLKAutoLayout
- GCDWebServer
- Google-Mobile-Ads-SDK
- GoogleAnalytics
- GoogleAppMeasurement
- GoogleDataTransport
- GoogleTagManager
- GoogleUserMessagingPlatform
- GoogleUtilities
- HMSegmentedControl
- IGListDiffKit
- IGListKit
- nanopb
- Objection
- OCMock
- PDKeychainBindingsController
- PopupDialog
- PrebidMobile
- PromisesObjC
- SBTUITestTunnelClient
- SBTUITestTunnelCommon
- SBTUITestTunnelServer
- SKPhotoBrowser
- UIImageViewAlignedSwift
SPEC CHECKSUMS:
CTPanoramaView: f7af526aaffedb2d52e87112ee0d57bb115eb6a2
DynamicBlurView: 58e18fae80bb614e34681a4486870e7d257b62e8
Firebase: 5ae8b7cf8efce559a653aef0ad95bab3f427c351
FirebaseABTesting: 61826730ce9eee8781ba99a2b3420e9bce148dc9
FirebaseAnalytics: 89ad762c6c3852a685794174757e2c60a36b6a82
FirebaseCore: 2082fffcd855f95f883c0a1641133eb9bbe76d40
FirebaseCoreDiagnostics: 99a495094b10a57eeb3ae8efa1665700ad0bdaa6
FirebaseCoreInternal: bca76517fe1ed381e989f5e7d8abb0da8d85bed3
FirebaseCrashlytics: 3210572ddb77801e5a0bd9d7bc890769f2066a0c
FirebaseInstallations: 0a115432c4e223c5ab20b0dbbe4cbefa793a0e8e
FirebaseMessaging: a4d7910e4af663c9cbfc1071c5bef34651690949
FirebasePerformance: f1e62598cd98c88ce6c10e0d26223d18b85c26d6
FirebaseRemoteConfig: ee09d77a7d7c7e31da6a0d1cf956cd611c85609c
FLKAutoLayout: 37e1e09de6411dbee5526860d9f55d9063323ea8
GCDWebServer: 2c156a56c8226e2d5c0c3f208a3621ccffbe3ce4
Google-Mobile-Ads-SDK: caf686ba55108412e02a3eedb136e12e488dbfaa
GoogleAnalytics: 01e4c5a04544a3608f93e970ce0817836897c5a5
GoogleAppMeasurement: 6de2b1a69e4326eb82ee05d138f6a5cb7311bcb1
GoogleDataTransport: 1c8145da7117bd68bbbed00cf304edb6a24de00f
GoogleTagManager: 4a2104b801c150ad1e1cf64f3a2d78f8110b1125
GoogleUserMessagingPlatform: 5f8b30daf181805317b6b985bb51c1ff3beca054
GoogleUtilities: 1d20a6ad97ef46f67bbdec158ce00563a671ebb7
HMSegmentedControl: 34c1f54d822d8308e7b24f5d901ec674dfa31352
IGListDiffKit: 665d6cf43ce726e676013db9c7d6c4294259b6b2
IGListKit: fd5a5d21935298f5849fa49d426843cff97b77c7
nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431
Objection: ed03f2219cb22d2b5b893114219fe6c7e3263bde
OCMock: 43565190abc78977ad44a61c0d20d7f0784d35ab
PDKeychainBindingsController: fa8cb3cf99f2ea9240d61066ed0549f34e2cec3c
PopupDialog: 720c92befd8bc23c13442254945213db5612f149
PrebidMobile: 1c85021dc895419c0d205cf9e985c586a0152053
PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb
SBTUITestTunnelClient: 873869031cec61a5b5540d66f5171a7abdad835d
SBTUITestTunnelCommon: 21371c4796ce6826b937d29c79cd8c758f31d775
SBTUITestTunnelServer: cb25d44ba2432d46efed49a0c3879c3d59f0915c
SKPhotoBrowser: cd95b95a6f352fc2a50992721299f75ead77f9ab
UIImageViewAlignedSwift: 12b0b06da988015e6d5dec09ee29d5ae1a244848
PODFILE CHECKSUM: aedbbec9a02834b6187d460a6deb407518e0966f
COCOAPODS: 1.11.3
I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
I should note I have also tried the following:
- get the dsym.zip from the CI server and then use
upload-symbols
with that zip on my local machine. That went well, so it's not like the zip is corrupt. - Tried to omit e.g. the plist, which immediately gives an error with details info on what's wrong.
Also, when it fails on CI, it does so immediately (within a second), so it seems like it's some prerequisite being wrong, but I'm running out of ideas of what to try.
Thanks for reporting, @niels-frydenholm. Is the issue only happening on Xcode 14? Additionally, could you check the following:
- Make sure that the DWARF with dSYM file is set for both debug and release builds.
- Make sure that the upload_symbols_to_crashlytics action is added in the Fastfile. This should allow you to symbolicate the fastlane generated .ipa crashes.
- You could try removing the dSYM path from fastlane so it will detect the path automatically, and see if that resolves the issue.
If that doesn’t work, could you provide the following info for me to get a better view of your issue:
- Fastlane output with the verbose flag
- Fastlane file
Yes, this problem has just started after we changed to use Xcode14. The same Fastlane setup build on the same Travis nodes works fine when running with an Xcode13 image.
DWARF with dsym is set for both debug and release (it was set to only DWARF for debug on simulators (to save build time), but I have tried to change that setting back to default, but it provides the same result.
I'm not completely sure what you mean with the second bullet about the upload_symbols_to_crashlytics
is added to the Fastfile?
I have also tried to omit the dSYM path and let Fastlane detect it - it found the same zip, and got the same result.
I'm fairly certain the issue is not related to Fastlane, as I have tried to run the same upload-symbols
command directly wrapped in a sh("...")
step in the fastfile, which gives the same negative result.
I have tried fastlane with the verbose flag, but it doesn't provide any more info around the place where it fails (see the attached photo, where Fastlane continues after the upload_symbols_to_crashlytics
- probably because it doesn't understand the blank statusCode coming back from the upload_symbols
program)
A current workaround is that I upload the dSYM.zip file to Artifactory (because the Travis build instance is cleaned after use), and from there I can get the file and manually upload it to Crashlytics.
But I'm still scratching my head as to how the upload_symbols
fails so fast, when the provided input parameters seems valid.
The other weird thing is upload script reports success
13:20:28 Successfully submitted symbols for architecture arm64 with UUID f0d0b5c234de3712be84eca1d2ea913a in dSYM: /Users/XXX/.jenkins/workspace/XXX-TEST-DEVELOP-TestFlight/build/XXX-TEST-Release.xcarchive/dSYMs/XXX.framework.dSYM
and
13:20:28 [32mSuccessfully uploaded Crashlytics symbols[0m
But I keep receiving email with Crashlytics detected a missing dSYM for version 1.0 (0) while my version is 1.0.220.
Thanks for the additional info, @niels-frydenholm. To narrow down and isolate if the issue is SDK-related, I just want to confirm if you have tried to manually upload the dSYMs using any of the options here? If so, is the issue also reproducible?
@dmi3j, it seems that the issue is on the backend side since the dSYM was successfully uploaded based on your logs. With this, please file a ticket through our support channel so they could check and investigate your project.
I have tried to take the Zip file from the build-server (the same zip that fails to upload during build) and manually upload it to Crashlytics from the Browser. But it's a good point to try and take the same zip file and use the upload-symbols locally on my machine. I'll give that a go tomorrow and report back how it goes...
I have now tried to use the zip file from the build-server, and uploading it with the upload-symbols
from my local machine.
That works fine, which adds to my own theory that "something" might have changed on our build-nodes, with the upgrade to Xcode14.
But with a "blank" errorCode from the upload-symbols
I can only guess - e.g. is it some wrong version of a dependency, some file access problems, or something completely different 🤔 🤷
I'm not super familiar with Travis, but it does seem like something about the environment on those xcode 14 machines has changed. I'm wondering if it could be M1 related?
- It's interesting that Travis doesn't show Xcode 14 in their list here: https://docs.travis-ci.com/user/reference/osx/. Am I looking in the wrong place? I'm hoping to find some sort of changelog for their Xcode 14
- Is there a way to get more information from the logs that Travis is spitting out? It seems likely that upload-symbols is crashing
I forgot to note that we are running a self-hosted enterprise setup of Travis, but I don't have any real insights into the provisioned machines we are running on (although I know they are not M1, but my own dev machine is). I'll see if I can find out how to ssh into a machine (before it's closing down after build), and try various commands, that might help verify what could have changed.
Hey folks, I am going to close this issue for now. Can you reopen if you are still running into problems?