In my Firebase Crash Reporting page i can't find the full information of crashes (for example the number of row, the file and so on) . I thought it can be because it says
Upload symbol file to symbolicate future stack traces for UUID ----***
telling me to
Using the command line, navigate to your Xcode project folder and run the following: ./Pods/FirebaseCrash/batch-upload ----***
Unfortunately when i try to execute that command in my Xcode project i get the following message:
----***: warning: no executable or bundle Done.
and nothing changes in firebase. Maybe it is because of bitcode enabled? How can i solve it?
P.S. : I have replaced my UUID with ----*** for security reasons.
This answer is if you're not using CocoaPods.
If you are not using CocoaPods you will need some files from the Pods directory that aren't included in the standard set of Firebase libraries they provide.
There are 5 files, pictured below:
You will need batch-upload
, dump_syms
, upload-sym
, upload-sym-util.bash
and upload-sym.sh
. You can retrieve these files from the FirebaseCrash Pod files.
If you copy those into your project directory and replace the "${PODS_ROOT}"/FirebaseCrash/
with the directory pointing to those files, it should work.
Note: I still have complications with this solution if I use a build server like Jenkins. Still some work to be done there.
I found that this was required for my apps that don't use CocoaPods. While this might not be directly relevant to your own use, I figure at the very least I should include it for someone else trying to find the answer.
We currently have some problems with third-party shared libraries (dynamic frameworks), so if you are using a shared library things get difficult. Follow the instructions below but replace the path to the app’s executable with the path to the shared library.
If not, then it is possible that the original executable from which the crash was reported has been lost. Even if it is rebuilt with the same sources, the LC_UUID field will change.
Verify that the UUID is correct for the executable:
dwarfdump --uuid /path/to/your/build/area/MyApp.app/MyApp
If none of the UUIDs match the missing one, then game over. Sorry. You can try to restore the executable from Time Machine, Carbonite, or whatever, but that's about it.
If one of the UUIDs matches (there is one per architecture), then you still have the original executable, but you are most likely missing the dSYM bundle. You can verify that the dSYM is missing:
mdfind com_apple_xcode_dsym_uuids=UUID
You should see no response.
Regenerate the dSYM bundle:
dsymutil -o=upload.dSYM /path/to/your/build/area/MyApp.app/MyApp
Check to see that the dSYM bundle is registered:
mdfind com_apple_xcode_dsym_uuids=UUID
You should get one response back: the upload.dSYM
you just created.
If you don't see it, give it a few seconds and try again.
Run batch-upload UUID
again.
If it still doesn't work, you can get partial results by processing the executable itself. Run batch-upload /path/to/your/build/area/MyApp.app/MyApp
to get partial symbolication.
In my case (WITHOUT COCOAPODS):
1) Import All files from directory "Crash"
2) Add script into "Build Phases" Tab like this :
# Replace this with the GOOGLE_APP_ID from your GoogleService-Info.plist file
GOOGLE_APP_ID=1:xxxxxxxxxxxx:ios:xxxxxxxxxxxx
# Replace the /Path/To/ServiceAccount.json with the path to the key you just downloaded
"${SRCROOT}"/upload-sym "${SRCROOT}/*NameOfTargetDirectory*/ServiceAccount.json"
You need to change "NameOfTargetDirectory" in the script and it works!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With