I have an app with Java and C++ code. Is it possible for me to only use Crashlytics to catch C++ crashes and not Java crashes? I tried using
Fabric.with(this, new CrashlyticsNdk());
but that gives me an error about Crashlytics needing to be initialized.
Edit: I don't mind using Crashlytics for Java crashes, but management is hard to convince. As far as they're concerned, our existing crash reporting solution works for Java crashes (but it doesn't work too well for native crashes) so the 'ideal' solution is to use Crashlytics only for C++ crashes.
Mike from Firebase here. No, the NDK SDK needs to have Crashlytics present in order to report everything correctly.
Related
Can you help us please with these great tools integration.
Our React Native iOS project has been using Crashlytics for several months and it works well in case of native crashes but in case of JS exceptions it required some customization of react-native logging (this Medium articles helped a lot to reach as verbose JS output as possible). In the end we didn't have as good JS errors output as we would like to have.
So we decided to integrate Sentry as well.
It was done successfully, but it seems that Sentry outpaces Crashlytics catching crashes before it: we can see crashes in Sentry dashboard but no in Crashlytics' one.
My question is the next: is it possible to integrate both Crashlytics and Sentry for both case - native crashes AND JS exceptions?
Thank you in advance.
UPD 06.03.2019
Finally, we've come to the usage of only Sentry because of the next reasons:
first of all, it doesn't require any special code for the JS events & errors well-formated output, whereas Crashlytics does;
second, it doesn't require any manipulation with dSym files released (and probably encrypted) via Testflight;
third, it also catches native crashes and provides a verbose output as well.
Sentry has support to React Native which includes the JS and Native errors (both iOS and Android).
I'm totally biased as I work for Sentry but it seems to me, based on your requirements and the two options you listed, Sentry is the one which has the support you need.
Mike from Fabric here. On iOS, only one uncaught exception handler can be safely installed and there will be conflicts, like you're seeing if multiple handlers are installed.
Today we found that Crashlytics don't catch SIGSEGV crashes, but google play console does. We were quite surprised to see many of such crashes in play console.
We want to have our crash reporting in one place. Can we catch SIGSEGV crashes with crashlytics?
The standard Android Crashlytics SDK catches Java crashes. Since SIGSEGV is a native crash you'll also need to include the Crashlytics NDK SDK, whether the SIGSEGV originates in an app's native libraries or third-party libraries. Check out https://fabric.io/downloads/gradle (with the NDK toggle switch on) for setup instructions.
I've a Titanium application that works on Android. Now, I want to make the Blackberry version.
I've tried to create a bar file in Titanium, but I use a lot of Titanium properties that are only for Android and iOS. So, the app crash.
I know you can repackage an apk to bar using command line tools. I've used it and it works. It converts the apk to bar, and I able to load it in a device (Q5). My problem is when I use apk2bar command, I receive a lot of warnings with different levels (a lot of severe warnings).
Severe warnings is because Titanium use native access.
I don't understand why the result of the conversion is succeed with these warnings, and why I can install it on device without any problem/error/crash.
Is there a way to remove something from Titanium and remove these warnings?
If I upload this .bar to Blackberry word, will it work?
Thanks!
Vila,
Those levels of warnings are there to let the developer know about potential issues. This does not mean that your application will not work.
Native libraries are supported in latest BlackBerry Android Runtime so you should not have issues, but don't forget to bundle them with your application.
Also, be sure to be using the latest dev tool to convert your APK to BAR FILE.
https://developer.blackberry.com/android/tools/
Find here also the API support to ensuer you will not have issues with your app features
https://developer.blackberry.com/android/apisupport/
I've installed Testflight (1.2 B3) as stated in the documentation. Builds are uploading and updating fine. I can see sessions (mostly anonymous :/), I receive the logs (TFLog) - but I do not receive any crash reports. I even introduced a crash-on-event (a method not found thing) - but theres is nothing on Testflight about it.
Provisioning is via a developer profile which embeds several devices.
The problem occurs on iOS6 and iOS5 / iPhone5 and iPad3. The is being build against iOS6.
Any ideas?
UPDATE
I've tested several other frameworks and ways to receive crash reports. Nothing worked so I suspect something in my code (obviously). Are there any other switches that XCode 4.5.1 might have enabled and that way disable any error reporting during a "production environment" like setup?
UPDATE 2
As of now we're using Testflight only for distribution of beta versions and switched to Crashlytics for crash reporting. It's a bit more streamlined and fetches most crashes.
I also do not get any crash reports via TestFlight. This is what the TestFlight people told me:
Our team is currently looking into an issue associated with auto
versioning of the app when uploaded and SDK data not reporting
properly. Looking at the URL you provided it looks like the build
version is not changing before uploading the app to TestFlight and our
auto versioning implementation is causing an issue with general SDK
data reporting.
I will share this with our team and we will contact you when we have
an update available.
I tried to update the build version to avoid auto-versioning, but it did not help me. But maybe this issue is hitting someone else.
Testflight did not satisfy our needs to log crashes. That is why we skipped to Crashlytics (as I said in the original post). The issues with Testflight seem not to be resolved. We still do use it for distribution, that is what it's good at.
How can I create automated user interface tests for a Titanium app? Does the framework include something for this? Are there any helpful third party tools?
Have you looked at titanium-jasmine?
I have never personally used it but ive heard its pretty useful for this type of thing. I'm not sure about its abilities to test actually visual elements.
EDIT:
For testing the user interface and simulating touch events on the simulator or device, just use UIAutomation with the native workflow! Since every Titanium project compiles to an XCode project (which can and should be at least profiled for memory leaks using the native workflow before release to the app store), you can just follow the steps here to write your own tests in Javascript.
As a first step, run your app in the simulator, then got to PROJECT_HOME/build/ and open up the xcodeproj file. Once inside XCode, hold down the "Run" button, click "Profile", which will open up "Instruments" and add the "Automation" widget like in the link I provided!
This is not titanium specific, it can be used for any iOS app and seems like a great tool for every iOS developer, along with Allocators and Memory Leak widgets inside of instruments.
Possibly a better alternative is using Gorilla Logic's free MonkeyTalk. It is a bit more straightforward if your not very experienced with XCode, and it has the benefit of (theoretically) being able to test iOS and Android.