Firebase Crash Reporting Multiple Issues - ios

I am setting up Firebase Crash Reporting on my iOS App. I have imported the necessary json files and set up the shell script. However, when I click run on the simulator, I get 11 errors all say about the same thing. Here are two of them:
warning: dump_syms: /var/folders/5l/20by_c_57fb7jhv3jh72jw9m0000gn/T/com.google.FirebaseCrashReporter.TAlixfZc/**App Name**.dSYM/Contents/Resources/DWARF/**App Name**: in compilation unit '/Users/mikelehen/firebase/firebase-client-objc/Firebase/Firebase/Utilities/FUtilities.m' (offset 0x28a2e): `
warning: dump_syms: /var/folders/5l/20by_c_57fb7jhv3jh72jw9m0000gn/T/com.google.FirebaseCrashReporter.TAlixfZc/**App name**.dSYM/Contents/Resources/DWARF/**App Name**: the DIE at offset 0x28fc1 has a DW_AT_abstract_origin attribute referring to the die at offset 0x2940f, which either was not marked as an inline, or comes later in the file `
When I try to run it on my iPhone I get only four issues.
Also, my name is not mikelehen which is for some reason in one of the issues.
After following the instructions on Firebase's website about simulating a crash, I never get the log output about the crash being uploaded.
Any idea of what I'm doing wrong here?
Edit:
Here is the script that is in my build phases:
JSON_FILE="../**App Name**/ServiceAccount.json"
GOOGLE_APP_ID=1:**App ID**
defaults write com.google.SymbolUpload version -integer 1
JSON=$(cat "${JSON_FILE}")
/usr/bin/plutil -replace "app_${GOOGLE_APP_ID//:/_}" -json "${JSON}" "$HOME/Library/Preferences/com.google.SymbolUpload.plist"
"${PODS_ROOT}"/FirebaseCrash/upload-sym

Try:
Build Phases --> Run Script
Click Run script only when installing

Those warnings are not harmful for the most part. The dump_syms utility that ships with the Cocoapod is not fully productized, so it reports errors using file names of the person who compiled it last (mikelehen in this case). We are actively looking into alternatives to dump_syms as the warnings are distracting.

As mentioned by Robert, the warnings are innocuous. Here are some suggestions that might help you out if you're having issues getting a crash to upload:
1) Make sure the debugger is not attached when you cause the crash to occur. It will intercept the exception, and nothing will get reported. So compile your program, hit stop in the debugger, manually launch the app (in either the simulator or the device), trigger the crash, then relaunch the app (without the crash so the error has time to report).
2) You should see a log message that Firebase Crash Reporting was initialized. If this is missing, make sure you've included the Firebase/Crash pod and called [FIRApp configure];.
3) Within 15 seconds, you should see another message indicating the report has been successfully sent. Be sure to wait at least 15 seconds. Reports are uploaded after a delay to avoid interfering with your app startup.
4) After the report has been uploaded, there is a delay of up to 20 minutes before data shows up in the web console.
5) If you're not using cocoapods, make sure you've added the ObjC linker flag in your Other Linker Settings in your target's build settings.

The dump_syms warnings generated are not harmful and are generated when symbol files are uploaded. So if you want to avoid warnings every time you build, you can create two targets; debug and release.
Then just disable the option of 'Run script only when installing' for Debug and enable it for release.
This will upload the symbol files.

Related

Zombie: Archiving Failed using Integration Menu

When I tried to archiving the project directly using Xcode menu (Product - Archive), it works well. But when I tried to execute it from the Integration menu (bot), I got this error:
Build operation failed without specifying any errors. Individual build
tasks may have failed for unknown reasons. One possible cause is if
there are too many (possibly zombie) processes; in this case,
rebooting may fix the problem. Some individual build task failures (up
to 12) may be listed below.
What happen? I couldn't find any error messages and completely have no clue on what's going on. I have tried to reboot the macmini and also revert the changes but it still.
UPDATE (Edit 3)
The issue has been fixed on Xcode 11, from beta 3:
Xcode uses response files by default to pass input files to the Swift compiler. To turn this behavior off, set USE_SWIFT_RESPONSE_FILE to NO.
You can use an unlimited number of Swift files in a target. (35879960)
Old answer
I've only seen this error arising when the total of files (notice all their respective absolute paths count) exceed the command line length limit (looks like it's imposed by the OS, currently 262144 bytes on my rMBP). It's a known issue.
To fix this (AFAIK), you have 2 options:
Fast (short term): Put your project on a shorter path on the server (like moving the project from /Users/mrjimoy_05_server/myprojects/mycoolproject/ to /p/mycoolproject)
Better (long term): While the first solution might work, for now, you'll probably reach the same point where you're now in the near future. So a better solution is to modularize your app (separate it into frameworks/projects). Since every module will get built separately, it'll be much harder to reach the limit and get this error again.
I hope it helps.
PD: Looks like the error thrown by the New Build System is:
unable to spawn process (File exists)
Edit 1
The error thrown by the New Build System on Xcode 10 now is:
unable to spawn process (Argument list too long)
Edit 2
The Swift team have solved this issue, but it also needs some work from the Xcode team, which hasn't been done yet on the latest released Xcode version (10.2)

How to identify if the error/warning is created with swiftlint rules

I am working on CI/CD setup for my xcode project. For code analysis i am using swiftlint. It is working fine and i am able to see all the errors and warnings in my xcode along with the description. I have also written the run script such that swiftlint only shows the errors and warnings during code analysis and not during build/run.
My issue is, after i integrate the bot with my Xcode server i am not able to identify whether the errors/warnings are generated due to swiftlint rules or by xcode.
Is it possible to identify if the error is due to swiftlint and not generated by xcode itself?
It's easy. [The blue part below is NOT from swiftlint, and the rest below it IS.]
It says "Shell Script Invocation Warning"
At the end of the message it gives you the rule that has been triggered inside parentheses
(function_body_length)
I just look for the messages ending in parens.

Swift - Command failed due to signal: Segmentation fault: 11 when build in configuration Release

I'm trying to compile a project then the Xcode said that.
I hope to receive the answers for these concerns, here are the situation:
Xcode 8.3.2
Swift 3.0
All Frameworks are built via Carthage (Exclude Fabric & Crashlitics)
When I build in Debug configuration everything are ok, but when I change to configuration Release then the compile always failed.
I tried to change the Optimization Level to Fast, Single-File Optimization[-O] then the Xcode works well and I also can archive to ipa file.
I have some concerns, could you please review ?
+ How do I completely resolve this problem and keep the default Optimization Level value for configuration Release ?
+ If I change Optimization Level value to Fast, Single-File Optimization[-O], could I submit the binary file to App store review ? Does it violet Apple's tos ?
Thank you,
you can get this error when the compiler gets too confused about what's going on in your code. I noticed you have a number of what appear to be functions nested within functions. You might try commenting out some of that at a time to see if the error goes away. That way you can zero in on the problem area. You can't use breakpoints because it's a compile time error, not a run time error.
And it might be possible that you have used a custom frameworks so just remove that custom framework which shows error

Parse Crash Reporting - symbol file not found, symbols not understood

I've read through a number of similar questions here about Parse Crash Reporting, and got a couple of hints that helped. But I am still unable to get the symbol file uploaded.
I added the script to XCode exactly as per instructions on the Parse Website. When the app builds, the script seems to run, and all the right messages are being displayed.
and
I added the time-delayed forced Exception to the app, in the suggested place. I ensured that CrashReporting was enabled. I added the Parse framework to the project via CocoaPods; it's there, and the app compiles without error or warning. I did the sequence of one crash, restart, second crash, wait a few minutes, refresh the Parse Dashboard.
But Parse thinks otherwise:
OK, fine. So i did a manual push of the file, via CLI from Terminal. First attempt failed because I wasn't uploading the DWARF file. Corrected that. Now it says it cant' find the file or directory.
Here's my folder on my machine, where the file is located:
And here's the command line, with the command and result:
So the CLI maybe is thinking that the filename isn't a file; I tried changing the name by adding a ".bin" extension.
Then I got a different error: "Do not understand symbol files at:" followed by the full path to the file. I even tried enclosing the full path in single quotes, inside the double quotes; same not-found error.
I have the latest Parse CLI downloaded. I am running the command "parse symbols -p " from the app's Cloud Code directory (an existing directory that had been set up earlier to use other Parse Cloud Code features).
What else to add? Running XCode 6.4, Objective-C app, I checked various other Build Settings to ensure that symbols were being generated. The file is 30Mb in size and opening it reveals what is clearly a binary file, whose contents do look like they're symbols from a compiler - recognizable names of classes, etc.
This is just a test app, and I'm testing out the Parse crash reporting, rather than signing up for another service, like New Relic or any of the other ones; I figure, I'm using Parse for other stuff, why not use its Crash Reporting...
Anyone have any idea what I'm doing wrong here? I just can't see it.

Xcode/Cocos2d-x "Could not inspect application package" error randomly alternates with "${EXECUTABLE_NAME} does not exist"

I'm trying to run my Cocos2d-x app built in Xcode 5.0.2 on a 4th generation iPod Touch running iOS 6.1.5. I don't have any third party libraries in the project yet, other than Cococs2d-x.
When I hit run, the behavior is inconsistent. Xcode builds the whole project without a hitch, but then gives me one of two errors at random. It doesn't strictly alternate, and it isn't tied to whether it's a clean build. It's just a coin toss.
Sometimes, I get not one, but two Could not inspect the application package. errors.
Sometimes, on the other hand, Xcode gives me this error:
The Info.plist for application at /Users/me/Library/Developer/Xcode/DerivedData/myapp/Build/Products/Debug-iphoneos/myapp.app specifies a CFBundleExecutable of ${EXECUTABLE_NAME}, which does not exist
I've found several reports of similar errors around the internet, but they usually say it specifies an executable of "(null)", and their solutions don't work for me. The most popular solution is, frustratingly, to set CFBundleExecutable (AKA "Executable File") to ${EXECUTABLE_NAME} in my Info.plist, which it is.
Any ideas? This is really weird.
UPDATE: Okay, I set Executable File to my literal product name, and now I'm down to the two "Could not inspect the application package." errors. The other error no longer comes up. That's some progress, anyway...
You could try using:
CFBundleExecutable ${PRODUCT_NAME}
in your info.plist
Sometimes deleting the ${EXECUTABLE_NAME} and manually putting it in works also. It sounds as if there's some corruption going on with the build and it's ignoring the parameter.

Resources